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

时间:2009-07-29 18:14:48

标签: 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 = ''; 

这有意义吗?有可能吗?

3 个答案:

答案 0 :(得分:96)

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 = ''

答案 1 :(得分:13)

注意,如果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 = '';

答案 2 :(得分:0)

试试这个,它对我来说很好。

Update table a, table b
Set a.importantField = b.importantField,
a.importantField2 = b.importantField2
where a.matchedfield = b.matchedfield;