2013-01-04 17 views

回答

1

最喜欢的数据库,MySQL有用于结合在更新一个加入unique syntax

UPDATE table1 
LEFT JOIN table2 ON table1.id=table2.id 
SET table1.id = table2.id 
WHERE table1.id IS NULL 
0

你不能在UPDATE语句加入(编辑 - 也许你可以)。你需要一个只返回一行的子查询。如果id是连接列,那么你的查询就没有意义了 - 我假设你加入了其他的东西。

我觉得像这样是正确的(没有测试过)。

UPDATE table1 outer 
SET id = (
    SELECT table2.id 
    FROM table2 JOIN table1 USING(join_column) -- or ON if the columns aren't the same 
    WHERE join_column = outer.join_column 
) 
WHERE id is null 
+0

是的,你可以[SQL小提琴](http://sqlfiddle.com/#!2/3e422/1/0)。像你提出的别名几乎是不允许的('update table1 outer') – Andomar