使用join语句更新mysql?

时间:2010-10-01 02:20:22

标签: mysql

这可以在mysql中使用吗?

update table1 
set column1 = (select column1 from table2  
               inner join table3 
               where table2.column5 = table3.column6);

这是a similar question for an Oracle DB

1 个答案:

答案 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