我正在尝试将列从一个表复制到另一个表。
一个表只包含upc列,我想将这些upc复制到另一个upc列等于NULL的表 p>
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 :(得分:0)
试试这个:
UPDATE tableB
SET upc = a.upc
FROM (SELECT upc FROM tableA) a WHERE tableB.id = tableA.id
答案 1 :(得分:0)
如果没有外键可以连接两个表,并且您希望按照它们列出的确切顺序加入行,那么在数据库中
试一试。
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。