高级MySql查询:使用另一个表中的信息更新表

sup*_*led 40 mysql sql-update

我想用另一个表中的数据更新mySql中的表.

我有两个表"人"和"业务".人员表通过名为"business_id"的列链接到业务表.

必要的表结构,主键是星号(表:列):人物:*business_id,*sort_order,电子邮件业务:*business_id,电子邮件

我想用人员表中的电子邮件更新业务表电子邮件列,就像这样(我知道我在这里遗漏了一些东西):

UPDATE business b SET email = (SELECT email  from People p where p.business_id = b.business_id AND sort_order = '1') WHERE b.email = ''; 
Run Code Online (Sandbox Code Playgroud)

这有意义吗?可能吗?

Chs*_*y76 101

UPDATE business b, people p
   SET b.email = p.email
 WHERE b.business_id = p.business_id
   AND p.sort_order = '1'
   AND b.email = ''
Run Code Online (Sandbox Code Playgroud)


hob*_*ave 15

注意,如果sort_order是INT,那么不要使用'1' - 使用1:

UPDATE business b
JOIN People p
ON p.business_id = b.business_id
AND p.sort_order = '1'
SET b.email = p.email
WHERE b.email = '';
Run Code Online (Sandbox Code Playgroud)