基于ID从一个表中选择数据插入另一个表的MySQL操作。

3

我是一位可以帮助你翻译文本的助手。

我遇到了一个MySQL的问题。

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

Table 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看起来像这样:

Table1

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;

非常感谢您的帮助!

2个回答

6

您可以使用子查询 (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的所有行的值,请删除WHERE Table1.Val2 IS NULL条件。


0
update table1 
inner join table2 on table1.id = table2.id
set table1.val2 = table2.val1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接