用另一个表的列更新表的一列(一对多关系)

wbgh16ku  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(276)

谢谢你抽出时间。
这是我想做的。我想用另一个表的信息更新一个表的列。

in_number
date

表B

in_number
anchor_date

现在tablea,每个元组有一个in\u数。但是tableb有好几个in\u数。它有一对多的关系。不管怎样,当两个表中的in\编号匹配时,我希望用表A中的日期更新表B中的锚定\日期。我该怎么做?
我试过了

UPDATE TableB t1, tableA t2
    SET t1.anchor_date= t2.date 
    WHERE t2.in_number = t1.in_number;

但这只会在每个in\u编号中更新一行。
请帮忙

vbopmzt1

vbopmzt11#

首先,你应该使用 join 在一个 select 查询,而不是跨表复制数据。让我假设你有一个很好的理由重复数据。
第二,您的查询应该可以工作,但最好使用显式 join 语法:

UPDATE TableB b JOIN
       TableA a
       USING (in_number)
    SET b.anchor_date = a.date ;
v8wbuo2f

v8wbuo2f2#

你可以试试下面的sql查询。
更新b set anchor\u date=a.date from tableb b inner join tablea on a.in\u number=b.in\u number

相关问题