我有一个包含2个表的数据库。在表1中有两列:
columnA(自动增量)和columnB(文本)
并在表2中: columnC(自动增量)和columnD(文本)
仅当自动增量列等于时,我才想用columnD中的数据替换(复制)columnB中的数据。
我试过这个,但不正确:
UPDATE table1
SET columnB = (
SELECT columnD
FROM table2 WHERE (
SELECT columnA FROM table1 = SELECT columnC FROM table2)
提前感谢您的帮助! :)
答案 0 :(得分:0)
您可以使用INNER JOIN更新UPDATE:
UPDATE `table1` as a
INNER join table2 b on a.columnA = b.columnC
SET a.`columnB` = b.`columnD`
-- WHERE clause if needed ...
答案 1 :(得分:-1)
您可以使用左连接:
UPDATE table1 t1 left join table2 t2 on t1.columnA=t2.columnC set t1.columnB=t2.columnD where t2.columnc is not null
答案 2 :(得分:-1)
您尝试使用一个查询更新columnB,这意味着无论columnA和columnC是否相等。我建议创建一个过程,在那里实现if语句,然后简单地调用该过程。