批处理SQL查询以更新其他表中的字段

时间:2018-08-04 17:55:13

标签: mysql sql database

Table t1 - Fields a, b Table t2 - Fields a, c

(a是两个表之间的公共字段)

我已在t2中添加了字段b,并希望使用t1中的引用填充相同的数据

这可以使用以下查询来完成(例如a = 100、101,...)

update t2 set b = (select b from t1 where a = 100 limit 1) where a = 100;

update t2 set b = (select b from t1 where a = 101 limit 1) where a = 101;

是否可以批量处理?

1 个答案:

答案 0 :(得分:1)

使用join

update t2 join
       t1
       on t2.a = t1.a
    set t2.b = t1.b;

您还可以使用相关子查询:

update t2
    set b = (select t1.b from t1 where t1.a = t2.a);

但是,不匹配的值将设置为NULL