为了澄清,我提出的问题是,“更改Sonata所有成员的电子邮件lastname@sonata.org,其中lastname是成员的实际姓氏。”
有三个表格存在问题。前两个是成员,第二个是艺术家,他们使用xRefArtistsMembers相关。它们如下:
Members
-------
MemberID, Firstname, Lastname, Address, Email
Artists
-------
ArtistID, ArtistName, City, Region, WebAddress
XrefArtistsMembers
------------------
ArtistID, MemberID
我制定了以下查询:
alter a.*
from artists a
left join xrefartistsmembers x on x.artistid = a.artistid
left join members m on m.memberid = x.memberid
and m.email = m.lastname + ' % @sonata.org';
不幸的是,它没有编译。同样,我想到的问题是,如何更改Sonata的所有成员lastname@sonata.org的电子邮件,其中lastname是成员的实际姓氏。
答案 0 :(得分:1)
UPDATE members m
JOIN xrefartistsmembers x ON x.memberid = x.memberid
JOIN artists a ON x.artistid = a.artistid
SET m.email = whatever
WHERE m.email = CONCAT(m.lastname, '@sonata.org')
我不确定JOIN的重点是什么。也许这个更简单的查询就足够了:
UPDATE members m
SET m.email = whatever
WHERE m.email = CONCAT(m.lastname, '@sonata.org')
答案 1 :(得分:0)
对于任何数据库
UPDATE Members SET Email='new email'
WHERE Email = Lastname + '@sonata.org'
AND MemberID IN (SELECT MemberID FROM XrefArtistsMembers)