我想用ColumnX
中的TableA
的值更新ColumnY
的TableB
。
[这两个表的共同点是属性id
。是否可以,当我尝试更新代码时得到
子查询返回多行
子查询看起来像这样:
UPDATE TableA
SET ColumnX = (SELECT ColumnY FROM TableB WHERE tableA.id=tableA.id);
尝试:
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值
您的where子句当前正在使用tableA.id=tableA.id
,这对于每一行都是正确的。试试:
UPDATE TableA
SET ColumnX = (SELECT ColumnY FROM TableB WHERE tableB.id=tableA.id);
例如,可以在选择行时使用联接:
UPDATE TableA, TableB set TableA.ColumnX=TableB.ColumnY WHERE TableA.id=TableB.id
只需更改=
之后的where子句条件的名称,因为您具有相同的表名,导致多个结果为TableB.id
或尝试以下操作
UPDATE TableA A
Join TableB B
On
A.id= B.id
SET A.ColumnX = B.ColumnY