我有一个table2,其主键ID为table1。我希望您根据与table2兼容的每一行的最后日期对table1进行更新。例如:
tabela 1 tabela2
ID DES CAN ###### ID DATA-
1 test 0 ###### 1 12/10/2017
2 test 0 ###### 1 12/09/2017
3 test 0 ###### 2 12/09/2017
4 test 0 ###### 3 12/10/2017
我打算只更新table1的记录,其中table2中的ID具有当前日期+15天。试试这个,但它不起作用。
UPDATE table
SET
Col1 = i.Col1,
Col2 = i.Col2
FROM (SELECT ID, Col1, Col2 FROM other_table) i
WHERE i.ID = table.ID
答案 0 :(得分:0)
您可以搜索更新语法。
更新表,其中列IN(表连接选择)
答案 1 :(得分:0)
标准SQL将使用两个相关的子查询:
UPDATE table
SET Col1 = (SELECT Col1 FROM other_table i WHERE i.ID = table.ID),
Col2 = (SELECT Col2 FROM other_table i WHERE i.ID = table.ID) ;
您可能需要WHERE
子句以确保您匹配。
某些数据库允许您设置元组:
UPDATE table
SET (Col1, Col2) = (SELECT Col1, COl2 FROM other_table i WHERE i.ID = table.ID);
您的配方应该适用于某些数据库(特别是SQL Server和Postgres)。