如何更改所有ID的记录,JOIN和连接

时间:2013-11-23 04:33:39

标签: mysql sql

为了澄清,我提出的问题是,“更改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是成员的实际姓氏。

2 个答案:

答案 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)