这可以在mysql中使用吗?
update table1
set column1 = (select column1 from table2
inner join table3
where table2.column5 = table3.column6);
答案 0 :(得分:13)
你可以做到。但是,在您给出的示例中,table1与更新值的源(table2 INNER JOIN table3)之间没有JOIN连接,因此结果将有些不可预测。
您的查询类似于(我不是MySQL专家):
UPDATE table1, table2, table3 SET table1.column1 = table2.column1
WHERE table2.column5 = table3.column6
但我可能想要的认为(我只是猜测)更像是:
UPDATE table1, table2, table3 SET table1.column1 = table2.column1
WHERE table1.somecolumn = table3.somecolumn AND table2.column5 = table3.column6