基于另一个 table 更新列
UPDATE column based on another table
我有两个表,TableA 和 TableB。公共栏是ID。
Table_A Table_B
ID | Tshirt | Jeans | ID | Jeans |
------------------------- ----------------
1 | small | (empty) | 1 | medium |
2 | medium | (empty) | 2 | small |
3 | large | (empty) | 3 | medium |
如何使用 Table B 中 "Jeans" 列的数据更新 Table A 中的 "Jeans" 列? "Jeans" 列在 Table A.
中已存在且值为空
结果应该是:
Table_A
ID | Tshirt | Jeans |
-------------------------
1 | small | medium |
2 | medium | small |
3 | large | medium |
我用过:
INSERT INTO Table_A SELECT Table_A.Jeans
FROM Table_A JOIN TableB ON Table_A.id = Table_B.id;
我得到的错误是:"Error Code: 1136. Column count doesn't match value count at row 1"。
我做错了什么?
您应该使用 UPDATE 查询
UPDATE Table_A a
JOIN Table_B b ON a.id = b.id
SET a.jeans = b.jeans;
您正在尝试插入新行,而不是更新它们,您得到的错误是因为内部查询 (1) 选择的列数与目标中的列数不同 table (3).改用更新:
update Table_A set Jeans = (select Jeans from Table_B where Table_B.id = Table_a.id)
我有两个表,TableA 和 TableB。公共栏是ID。
Table_A Table_B
ID | Tshirt | Jeans | ID | Jeans |
------------------------- ----------------
1 | small | (empty) | 1 | medium |
2 | medium | (empty) | 2 | small |
3 | large | (empty) | 3 | medium |
如何使用 Table B 中 "Jeans" 列的数据更新 Table A 中的 "Jeans" 列? "Jeans" 列在 Table A.
中已存在且值为空结果应该是:
Table_A
ID | Tshirt | Jeans |
-------------------------
1 | small | medium |
2 | medium | small |
3 | large | medium |
我用过:
INSERT INTO Table_A SELECT Table_A.Jeans
FROM Table_A JOIN TableB ON Table_A.id = Table_B.id;
我得到的错误是:"Error Code: 1136. Column count doesn't match value count at row 1"。
我做错了什么?
您应该使用 UPDATE 查询
UPDATE Table_A a
JOIN Table_B b ON a.id = b.id
SET a.jeans = b.jeans;
您正在尝试插入新行,而不是更新它们,您得到的错误是因为内部查询 (1) 选择的列数与目标中的列数不同 table (3).改用更新:
update Table_A set Jeans = (select Jeans from Table_B where Table_B.id = Table_a.id)