ver*_*esj 53 mysql join sql-update
我有两张桌子,
这是我的第一张桌子,
ID SUBST_ID CREATED_ID
1 031938 TEST123
2 930111 COOL123
3 000391 THIS109
4 039301 BRO1011
5 123456 COOL938
... ... ...
Run Code Online (Sandbox Code Playgroud)
这是我的第二张桌子,
ID SERIAL_ID BRANCH_ID
1 039301 NULL
2 000391 NULL
3 123456 NULL
... ... ...
Run Code Online (Sandbox Code Playgroud)
我需要一些如何使用第一个表中的数据更新第二个表中的所有行.
它需要在一个更新查询中完成所有操作.
SUBST_ID和SERIAL_ID都匹配,它需要从第一个表中获取created_id并将其插入第二个表中.
所以第二个表将成为以下表,
ID SERIAL_ID BRANCH_ID
1 039301 BRO1011
2 000391 THIS109
3 123456 COOL938
... ... ...
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助和指导.
Tom*_*Tom 119
UPDATE TABLE2
JOIN TABLE1
ON TABLE2.SERIAL_ID = TABLE1.SUBST_ID
SET TABLE2.BRANCH_ID = TABLE1.CREATED_ID;
Run Code Online (Sandbox Code Playgroud)
Raf*_*shi 18
除了汤姆的回答,如果您需要经常重复操作并希望节省时间,您可以:
UPDATE TABLE1
JOIN TABLE2
ON TABLE1.SUBST_ID = TABLE2.SERIAL_ID
SET TABLE2.BRANCH_ID = TABLE1.CREATED_ID
WHERE TABLE2.BRANCH_ID IS NULL
Run Code Online (Sandbox Code Playgroud)
我认为这应该有效
UPDATE secondTable
JOIN firsTable ON secondTable.SERIAL_ID = firsTable.SUBST_ID
SET BRANCH_ID = CREATED_ID
Run Code Online (Sandbox Code Playgroud)
UPDATE TABLE2
JOIN TABLE1
ON TABLE1.SUBST_ID = TABLE2.SERIAL_ID
SET TABLE2.BRANCH_ID = TABLE1.CREATED_ID
WHERE TABLE2.BRANCH_ID IS NULL or TABLE2.BRANCH_ID='';
Run Code Online (Sandbox Code Playgroud)