MySQL 子查询 select 次要 table 中的最大值在两个 table 中都有条件

MySQL subquery select max value in secondary table with conditionals in both tables

在查看 Whosebug 数据库中的许多“类似”问题(例如 7745609)后,有一个语法问题我无法解决。这里的“独特”问题是每个 table 上都有条件。这是我的代码:

    SELECT r.ID, r.FirstName, r.LastName, m.TotalMPs
    FROM roster r 
    LEFT OUTER JOIN MPs m 
    ON r.ID= m.ID
    WHERE r.eMail IS NOT NULL AND r.Subscribe = "Y" AND r.Status = "A" AND m.TotalMPs <= "10" 
    ORDER BY r.LastName, r.FirstName

这会检索花名册中的所有行,其中 MPs 中的匹配 ID 的 TotalMPs <= 10。但是 MPs 中的 ID 有多个行,我只希望 MAX(TotalMPs) 行从 MPs“加入”到花名册中的单个相应条目。我试过在不同的地方添加 MAX() 并在 LEFT OUTER JOIN 子句中添加 GROUP BY 但出现语法错误。非常感谢任何帮助。

SELECT r.ID, r.FirstName, r.LastName, m.TotalMPs
FROM roster r 
INNER JOIN (
    SELECT ID, MAX(TotalMPs) as TotalMPs
    FROM MPs
    GROUP BY ID 
) m
ON r.ID = m.ID AND m.TotalMPs <= "10"
WHERE r.eMail IS NOT NULL 
AND r.Subscribe = "Y" 
AND r.Status = "A" 
ORDER BY r.LastName, r.FirstName