[英]MySQL. Two tables, copy one column
我正在學習MySQL,我有一個問題。 我有兩個表.. table1和table2。 table1包含幾個列,如(id,type,id_marca,price)等,table2有幾列,如(id,values,..,id_marca)。 我想要的和我想要做的是:第一個表中的id_marca有值,第二個表中的id_marca有NULL值。 我想將id_marca.table1中的值復制到id_marca.table2中。 基本上將第一個表中的列復制到第二個表中。
我用了
INSERT INTO table2 (id_marca) SELECT id_marca FROM table1 ;
但問題是以下..它在NULL值之后插入第一個表中的列的值,並且不替換它們。
要更好地查看問題:這是table1:
id name id_marca
1 a 1
2 b 1
3 c 2
這是table2:
id value id_marca
1 123 NULL
2 34155 NULL
3 123 NULL
執行INSERT INTO table2(id_marca)SELECT id_marca FROM table1后,表2變為:
id value id_marca
1 123 NULL
2 34155 NULL
3 123 NULL
4 0 1
5 0 1
6 0 2
但我希望它是:
id value id_marca
1 123 1
2 34155 1
3 123 2
希望你能理解,先謝謝你們。
您應該使用UPDATE而不是INSERT,如果這些表按ID字段邏輯鏈接,請嘗試:
UPDATE TABLE2 a
JOIN TABLE1 b ON a.id = b.id
SET a.id_marca = b.id_marca
INSERT
將一個表列復制到另一個表 INSERT ON DUPLICATE KEY UPDATE
來完成 INSERT INTO zzdemo_table02
(lname,userid)
SELECT
lname,userid
FROM(
SELECT
lname,userid
FROM
zzdemo_table01
) as tt01
ON DUPLICATE KEY UPDATE
userid=tt01.userid
,lname=tt01.lname
;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.