有两张桌子。

艺术家:ArtistID,ArtistFirstName,ArtistLastName,ArtistEmail,ArtistPhone,传记,ReferenceNumber,AgentID

代理:AgentID,AgentFirstName,AgentLastName,CompanyName,AgentEmail,AgentPhone

尝试列出每个预订代理代表的艺术家数量

注意:一个代理可以代表许多艺术家,但是每个艺术家只能得到一个代理。

这就是我得到的,不确定为什么它不起作用,谢谢

SELECT ag.AgentFirstName,ag.AgentLastName,ag.CompanyName,ag.AgentID,COUNT
(ar.ArtistID) AS NumberOfArtists
FROM Agent ag
JOIN Artist ar ON ar.AgentID  = ag.AgentID
GROUP BY ArtistID

最佳答案

您正在按错误的列进行汇总。您需要按代理汇总:

SELECT ag.AgentFirstName, ag.AgentLastName, ag.CompanyName, ag.AgentID,
       COUNT(ar.ArtistID) AS NumberOfArtists
FROM Agent ag JOIN
     Artist ar
     ON ar.AgentID  = ag.AgentID
GROUP BY ag.AgentFirstName, ag.AgentLastName, ag.CompanyName, ag.AgentID

关于mysql - SQL Count函数不适用于联接查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47372412/

10-12 03:16