我想用ColumnX
中TableA
的值更新ColumnY
的{{1}}。
这两个表的共同点是属性TableB
。
是否有可能,当我尝试更新代码时得到
子查询返回多行
子查询看起来像这样:
id
答案 0 :(得分:1)
尝试:
UPDATE TableA
SET ColumnX = (SELECT ColumnY FROM TableB WHERE tableA.id=tableB.id);
并确保SELECT ColumnY FROM TableB WHERE tableA.id in (SELECT id FROM TableB )
返回1个值
答案 1 :(得分:1)
您的where子句当前正在使用tableA.id=tableA.id
,每行都适用。试试:
UPDATE TableA
SET ColumnX = (SELECT ColumnY FROM TableB WHERE tableB.id=tableA.id);
答案 2 :(得分:0)
您可以像选择行一样使用联接,例如:
UPDATE TableA, TableB set TableA.ColumnX=TableB.ColumnY WHERE TableA.id=TableB.id
答案 3 :(得分:0)
只需更改=
之后的where子句条件中的名称,因为您具有相同的表名,导致多个结果返回到TableB.id
或在下面尝试
UPDATE TableA A
Join TableB B
On
A.id= B.id
SET A.ColumnX = B.ColumnY