我试图使用另一个表 RECEIPT 的数据对属于表 INVOICE 的列进行更新,例如
INVOICE.field1 = RECEIPT.field1
,但是INVOICE
和RECEIPT
之间没有直接关系,而是通过包含与这两个表的关系的PURCHASE
表。我正在使用 SQL Server 2022。
我尝试了以下选项,但无法更新。
UPDATE INVOICE T1
SET T1.field1 = T3.field1
FROM PURCHASE T2
INNER JOIN RECEIPT T3 ON T2.field2 = T3.field2
我更喜欢使用以下语法:
UPDATE t /*alias of the table to update*/
SET someField = t2.someOtherField
FROM TABLE1 t /*the table with the above alias */
INNER JOIN TABLE3 t3
ON t3.ID = t.ID
INNER JOIN TABLE2 t2
ON t2.ID = t3.ANOTHER_ID
通过这种方式,您可以根据需要构建联接,并且只需在更新开始时引用正确的表即可。