我正在尝试编写一个 SQL Select 语句,它会告诉我一个艺术家记录的实践总数和演出总数。 我有 3 个表,艺术家、实践和表演。
Practices 和 Shows 表中有一个 Artist_ID 作为外键,还有它们自己的自动递增 ID 和一个日期列。我正在尝试计算每个用户拥有的练习总数和节目总数。
我已经尝试了几种说法..这是最新的尝试。
SELECT COUNT(P.Practice_ID) as NumberOfPractices, COUNT(S.Show_ID) as NumberOfShows
FROM Practices P
INNER JOIN Artists A ON P.Artist_ID = A.Artist_ID
RIGHT JOIN Shows S ON A.Artist_ID = S.Artist_ID
WHERE A.Artist_ID = :artistID
这个,以及我尝试过的其他所有东西,似乎都是将两个表的数量相乘。例如,Practices 应该等于 21,Shows 应该等于 2。但我得到的结果都是 42。
最佳答案
SELECT
a.Artist_ID
, COUNT(p.Practice_ID)
, COUNT(s.Show_ID)
FROM
Artists a
LEFT JOIN
Practice p
ON a.Artist_ID = p.Artist_ID
LEFT JOIN
Shows s
ON a.Artist_ID = s.Artist_ID
GROUP BY
a.Artist_ID
关于mysql - 从 2 个表中计算 1 个用户的条目总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48998041/