mysql - 从 2 个表中计算 1 个用户的条目总数

标签 mysql sql

我正在尝试编写一个 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/

相关文章:

sql - 当日期分别存储为年月日时查找范围内的日期

php - 我如何修改此 MySQL 查询来查找排名?

mysql - SQL 更新连接语法错误

mysql - 如何确定数据库列中值之间的差异并返回最小差异?

mysql - 具有多个数据库(mongodb、mysql)的 ruby​​ on rails

java - 如何查找两个表之间的关系?

php - 将行收集到 1 行并添加列

mysql - 为什么 MYSQL 错误 1406 列数据太长?

SQL DISTINCT 不会删除重复项

sql - 限制通配符捕获长度postgreSQL