簡體   English   中英

MySQL的。 兩個表,復制一列

[英]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

上下文

  • MySQL v 5.7
  • 用戶希望使用INSERT將一個表列復制到另一個表
  • 目標是將BEFORE改為AFTER

在此輸入圖像描述

  • 這可以使用MySQL INSERT ON DUPLICATE KEY UPDATE來完成
  • 此方法將插入新記錄,並且還將更新具有匹配ID的現有記錄

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.

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