根据行将数据从一列插入到另一列的 MYSQL


Insert data from one column to another MYSQL based on row

我是MYSQL查询的新手,所以我正在努力解决这个问题。

我有两张桌子

Table 1 
  id       phone1  phone2   name     ...
  1        123      456
  3        234      567
  7        345      678
Table 2
  id        p1        p2    age     ...
  1        1123      2456
  7        1345      2678
  3        1234      2567

两个表的 ID 相同。这两个表都有许多其他行。

我想将数据从表 2 复制到表 1,以便 id 保持不变。

所以输出应该是

Table 1 
  id       phone1  phone2   name
  1        1123      2456
  3        1234      2567
  7        1345      2678
UPDATE Table1 tab1
    INNER JOIN Table2 tab2 ON tab2.id = tab1.id
    SET 
    tab1.Column2 = tab2.Column3;

检查此 sqlfiddle

已经回答了:

堆栈溢出

在您的情况下:

UPDATE table1 t1
    INNER JOIN table2 t2 ON t2.id = t1.id
    SET t1.phone1 = t2.p1,
    t1.phone2 = t2.p2;

试试这个。

UPDATE table1 tbl1
JOIN table2 tbl2 
ON tbl2.id = tbl1.id
SET tbl1.phone1 = tbl2.p1,
tbl1.phone2 = tbl2.p2;