更新行中具有不同值的列

问题描述 投票:0回答:4

我想用ColumnX中的TableA的值更新ColumnYTableB

[这两个表的共同点是属性id。是否可以,当我尝试更新代码时得到

子查询返回多行

子查询看起来像这样:

UPDATE TableA 
SET ColumnX = (SELECT ColumnY FROM TableB WHERE tableA.id=tableA.id);
mysql sql postgresql sql-update
4个回答
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值


0
投票

您的where子句当前正在使用tableA.id=tableA.id,这对于每一行都是正确的。试试:

UPDATE TableA 
SET ColumnX = (SELECT ColumnY FROM TableB WHERE tableB.id=tableA.id);

0
投票

例如,可以在选择行时使用联接:

UPDATE TableA, TableB set TableA.ColumnX=TableB.ColumnY WHERE TableA.id=TableB.id

0
投票

只需更改=之后的where子句条件的名称,因为您具有相同的表名,导致多个结果为TableB.id或尝试以下操作

         UPDATE TableA A
         Join TableB B
         On
         A.id= B.id
        SET A.ColumnX = B.ColumnY 
© www.soinside.com 2019 - 2024. All rights reserved.