您需要使用JOIN子句的UPDATE語句而不是INSERT語句,因爲你已經在兩個表中的數據,你想從一個表中的列之一的值複製到另一個。
腳本:
CREATE TABLE table1
( id INT NOT NULL
, value INT NOT NULL
, number INT NOT NULL
);
CREATE TABLE table2
( id INT NOT NULL
, name VARCHAR(30) NOT NULL
, value INT NOT NULL
, rid INT NOT NULL
);
INSERT INTO table1 (id, value, number) VALUES
(1, 0, 111),
(2, 0, 222),
(3, 0, 333),
(4, 10, 444);
INSERT INTO table2 (id, name, value, rid) VALUES
(1, 'abc', 123, 1),
(2, 'def', 345, 2),
(3, 'efg', 456, 3),
(4, 'ghi', 567, 4);
UPDATE table1
INNER JOIN table2
ON table1.id = table2.rid
SET table1.value = table2.value;
數據之前運行更新:
table1:
ID VALUE NUMBER
-- ----- ------
1 0 111
2 0 222
3 0 333
4 10 444
table2:
ID NAME VALUE RID
-- ---- ----- ---
1 abc 123 1
2 def 345 2
3 efg 456 3
4 ghi 567 4
數據後運行更新:
table1:
ID VALUE NUMBER
-- ----- ------
1 123 111
2 345 222
3 456 333
4 567 444
table2:
ID NAME VALUE RID
-- ---- ----- ---
1 abc 123 1
2 def 345 2
3 efg 456 3
4 ghi 567 4
你會得到什麼樣的錯誤? –