MySQL根据ID从一个表中选择另一个表
Posted
技术标签:
【中文标题】MySQL根据ID从一个表中选择另一个表【英文标题】:MySQL Selecting from One table into Another Based on 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;
感谢任何帮助!
【问题讨论】:
【参考方案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
(我假设您只想更新Table1
中Val2
为NULL 的行。如果您想覆盖Table2
中匹配ID
s 的所有行的值,只需删除WHERE Table1.Val2 IS NULL
条件。)
【讨论】:
【参考方案2】:update table1
inner join table2 on table1.id = table2.id
set table1.val2 = table2.val1
【讨论】:
以上是关于MySQL根据ID从一个表中选择另一个表的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 MySQL 中第三个表中存在的 id 将数据从一个表复制到另一个表?