2013-01-04 13 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