Ray*_*erx 2 mysql database select select-into
我在使用MySQL时遇到问题
我有两个表,我想将表2中的Val1存储到表1中的Val2中
表格1
ID-----Val1-----Val2
1------A--------NULL
2------B--------NULL
3------C--------NULL
4------D--------NULL
5------E--------NULL
Run Code Online (Sandbox Code Playgroud)
表2
ID-----Val1
1------aaa
2------bbb
3------ccc
4------ddd
5------eee
Run Code Online (Sandbox Code Playgroud)
这样,Table1现在看起来像
表格1
ID-----Val1-----Val2
1------A--------aaa
2------B--------bbb
3------C--------ccc
4------D--------ddd
5------E--------eee
Run Code Online (Sandbox Code Playgroud)
现在,我有
INSERT INTO Table1(Val2) SELECT Val1 FROM Table2 WHERE Table1.ID=Table2.ID;
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏!
您可以使用子查询(SQLize):
UPDATE Table1
SET Val2 = ( SELECT Val1 FROM Table2 WHERE Table1.ID = Table2.ID )
WHERE Val2 IS NULL
Run Code Online (Sandbox Code Playgroud)
或多表更新(SQLize):
UPDATE Table1, Table2
SET Table1.Val2 = Table2.Val1
WHERE Table1.ID = Table2.ID AND Table1.Val2 IS NULL
Run Code Online (Sandbox Code Playgroud)
或与显式JOIN(SQLize)相同:
UPDATE Table1 JOIN Table2 ON Table1.ID = Table2.ID
SET Table1.Val2 = Table2.Val1
WHERE Table1.Val2 IS NULL
Run Code Online (Sandbox Code Playgroud)
(我假设你只想要更新的行中Table1的哪个Val2是NULL。如果你想与匹配会覆盖所有列的值IDS IN Table2,只是删除了WHERE Table1.Val2 IS NULL条件。)