【问题标题】:MySQL Selecting from One table into Another Based on IDMySQL根据ID从一个表中选择另一个表
【发布时间】:2012-03-23 07:51:45
【问题描述】:

我遇到了 MySQL 问题

我有两张表,我想将表2中的Val1存储到表1中的Val2中

表1

ID-----Val1-----Val2
1------A--------NULL
2------B--------NULL
3------C--------NULL
4------D--------NULL
5------E--------NULL

表2

ID-----Val1
1------aaa
2------bbb
3------ccc
4------ddd
5------eee

所以 Table1 现在看起来像

表1

ID-----Val1-----Val2
1------A--------aaa
2------B--------bbb
3------C--------ccc
4------D--------ddd
5------E--------eee

现在,我有

INSERT INTO Table1(Val2) SELECT Val1 FROM Table2 WHERE Table1.ID=Table2.ID;

感谢任何帮助!

【问题讨论】:

    标签: mysql database select select-into


    【解决方案1】:

    您可以使用任一子查询 (SQLize):

    UPDATE Table1
    SET Val2 = ( SELECT Val1 FROM Table2 WHERE Table1.ID = Table2.ID )
    WHERE Val2 IS NULL
    

    或多表更新 (SQLize):

    UPDATE Table1, Table2
    SET Table1.Val2 = Table2.Val1
    WHERE Table1.ID = Table2.ID AND Table1.Val2 IS NULL
    

    或与显式 JOIN (SQLize) 相同:

    UPDATE Table1 JOIN Table2 ON Table1.ID = Table2.ID
    SET Table1.Val2 = Table2.Val1
    WHERE Table1.Val2 IS NULL
    

    (我假设您只想更新Table1Val2 为NULL 的行。如果您想覆盖Table2 中匹配IDs 的所有行的值,只需删除WHERE Table1.Val2 IS NULL 条件。)

    【讨论】:

      【解决方案2】:
      update table1 
      inner join table2 on table1.id = table2.id
      set table1.val2 = table2.val1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多