我想用另一个表中的数据更新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 = ''; 

这有意义吗?有可能吗?

有帮助吗?

解决方案

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

其他提示

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

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

Update table a, table b
Set a.importantField = b.importantField,
a.importantField2 = b.importantField2
where a.matchedfield = b.matchedfield;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top