簡體   English   中英

將列從一個表更新到另一個mysql

[英]update column from one table to another 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

如果有人幫我解決這個問題,將不勝感激。 謝謝

嘗試這個:

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

如果沒有外鍵可以連接兩個表,並且您希望按列出的確切順序連接行,那么將在數據庫中

試試這個。

SET @id=0;

UPDATE table_b AS b
INNER JOIN (
    SELECT @id:=@id+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的行編號,然后使用行號將table_a連接到table_b。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM