我想用另一个表中的数据更新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 = '';
这有意义吗?有可能吗?
答案 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;