如果我正确理解您的问题,您希望将您的Donations表更新为与成员关联的MAX Id,并删除Members表中保留MAX的重复记录.
如果是这样,那么这应该有效 – 但是,你不应该有2个具有相同id的成员:
UPDATE Donations D
JOIN Members M ON M.MemberId = D.MemberId
JOIN (SELECT Max(MemberId) MaxId, Name
FROM Members
GROUP BY Name
) M2 ON M.Name = M2.Name
SET D.MemberId = M2.MaxId;
DELETE M
FROM Members M
JOIN Members M2 ON M.Name = M2.Name AND M.MemberId < M2.MemberId;
发表您的意见,也许您只是在寻找SQL语句来显示更新的捐赠与MAX(Id).如果是这样,那么这应该工作:
SELECT M2.MaxId MemberId, D.Amount
FROM Donations D
JOIN Members M ON M.MemberId = D.MemberId
JOIN (SELECT Max(MemberId) MaxId, Name
FROM Members
GROUP BY Name
) M2 ON M.Name = M2.Name;