2014-02-17 194 views
0

我不想臨時連接,我希望基於共享ID實際更新一列,使其與另一個表中的對應表相同。這將是這樣的:提前根據ID將一個表中的單個列合併到另一個表中

UPDATE parts2.PartNumber 
SET parts2.PartNumber=parts.PartNumber 
WHERE parts2.id=parts.id; 

謝謝,對不起,如果這是一個重複的問題,但我似乎無法找到答案出乎我的意料。即使該列當然存在,上面的代碼給出了unknown column parts2.id in WHERE clause的語法錯誤。

+0

爲什麼你不想臨時加入? – Alexander

+0

我正在將一個巨大的雪地汽車零件列表解析到客戶端的數據庫中,並且沿途的某處設法將每一行的零件號碼設置爲相同的,覆蓋原件。我已經做了大量的工作,最有效的做法是根據表格的舊版本複製零件號碼。 –

+0

我相信下面會給你想要的結果。但它基於一個連接:'UPDATE parts2 JOIN parts SET parts2.PartNumber = parts.PartNumber WHERE parts2.id = parts.id'? – Alexander

回答

1

我相信下面會給你想要的結果。但它基於一個連接:

UPDATE parts2, 
     parts 
    SET parts2.PartNumber=parts.PartNumber 
WHERE parts2.id=parts.id; 

它會做你想要的。這是一種最有效的方式。我在試圖避免JOIN這裏看不到任何意見

+0

接受評論中的第一個評論。 –

1

您可以通過加入零件零件2表來完成此操作。

UPDATE parts2 AS p2 
INNER JOIN parts AS p1 
ON p1.id= p2.id 
SET p2.PartNumber=p1.PartNumber 
1

使用UPDATE JOIN語法

UPDATE parts2 
    JOIN parts ON parts2.id=parts.id 
SET parts2.PartNumber=parts.PartNumber 
0
UPDATE parts, parts2 
SET p2.PartNumber=p1.PartNumber 
FROM parts p1, parts2 p2 
WHERE p1.id = p2.id 
+0

我不認爲這是一個正確的語法 – Alexander

1

您也可以試試這個。

UPDATE parts2 
SET parts2.PartNumber=parts.PartNumber from parts 
WHERE parts2.id=parts.id; 

你只需要指定表SET財產。 希望這會有所幫助

相關問題