2014-11-13 115 views
0

我想從一個表複製列到另一個表。更新從一個表到另一個列mysql

一個表包含只是UPC欄,我想這些的UPC複製到具有UPC列等於爲NULL

table A 
upc 
1011 
2022 
3034 
4033 
5044 

table B 
id name upc 
1 stuff NULL 
2 stuff2 NULL 
3 stuff3 2344 
4 stuff4 3444 

另一個表基本上是最終的結果應該是

table B 
id name upc 
1 stuff 1011 
2 stuff2 2022 
3 stuff3 2344 
4 stuff4 3444 

這是什麼我努力了。但是,所有列都更新爲NULL。絕對不是一個理想的效果。

UPDATE t1 
RIGHT JOIN 
upcs t2 
ON  t1.upc = t2.upc 
SET  t1.upc = t2.upc 
WHERE t1.upc IS NULL 

如果有人給我一個這個手,我會很感激。由於

+0

表B中有一個外鍵指向表A嗎? – Jaylen

+0

否表B中沒有指向表A的外鍵。表A只有一列 –

+0

您應該在下面檢查我的答案。 – Jaylen

回答

0

如果沒有外鍵的加入兩個表,和你想加入該行中,他們列出然後在數據庫中

給出確切順序這是一個嘗試。

SET @id=0; 

UPDATE table_b AS b 
INNER JOIN (
    SELECT @id:[email protected]+1 AS id, upc 
    FROM table_a 
) AS a ON a.id = b.id 
SET b.upc = a.upc 
WHERE b.upc IS NULL; 

這段代碼的作用是數列在表B中1, 2, 3, .......n然後加入表-A使用行號表-B。

+0

非常好。它看起來像這樣做了。謝謝 –

+0

太棒了!不要忘記接受答案:) – Jaylen

0

試試這個:

UPDATE tableB 
SET upc = a.upc 
FROM (SELECT upc FROM tableA) a WHERE tableB.id = tableA.id