例如,我table1
field1
和field2
,并希望执行以下操作:
UPDATE table1
SET field1, field2 = (SELECT field1, field 2 FROM tableXYZ)
WHERE field 3 = 'foobar'
或者我必须做多次SET,多次运行相同的SELECT查询?
答案 0 :(得分:0)
假设您使用的数据库支持它,您可以加入表。 SO:
Update table1
set field1 = tbx.field1,
field2 = tbx.field2
from table1 join tablexyz on --some key value join
答案 1 :(得分:0)
您可以通过将左侧的列放在括号之间来执行元组赋值。
UPDATE table1
SET (column1, column2) = (SELECT col1, col2
FROM tableXYZ
WHERE ...)
WHERE column3 = 'foobar';
以上是标准SQL,但并非所有DBMS都支持。
请注意, 要在子选项中使用WHERE
子句,以确保select只返回单个行(通常会与共同相关的子查询)。