Mysql统计有3个表

标签 mysql join count

我有三个表:

用户: ID、姓名
类次: id、date_start、date_end
user_shifts: user_id、shift_id

我想要获取在特定日期范围内完成n次轮类的所有用户,其中n可以是任何整数(也可以是0!)。

我可以像这样获取所有用户的轮类次数:

SELECT 
    users.*,
    COUNT(users_shifts.user_id) AS nr_shifts
FROM 
    users
LEFT JOIN 
    users_shifts ON users.id = users_shifts.user_id
GROUP BY 
    users.id

我不知道如何:
1)向此查询添加日期范围
2)将结果限制为特定的nr_shifts

非常感谢任何帮助。

最佳答案

SELECT 
users.*,
COUNT(users_shifts.user_id) AS nr_shifts
FROM 
users
LEFT JOIN 
users_shifts ON users.id = users_shifts.user_id
WHERE shifts.date_end = '10/OCT/2012'
GROUP BY 
users.id
Order by users.id
LIMIT 10

关于Mysql统计有3个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17446922/

相关文章:

mysql - mysql中如何根据另一个表统计一个表中的行数

mysql - 如何使用 Java SprinBoot CrudRepository 在 MySQL 中插入/更新 JSON 列的行

sql - 即使为 0,也返回 count(*)

c++ - 计算特定单词在 C++ 文本文件中出现的次数

c# - 哪里和加入 LINQ 不起作用

mysql - 将一张 table 与另外 3 张 table 合并

powershell - 使用每行的第一个单词作为变量

php - Vagrant 命令未运行,正在安装开发机

MySQL SELECT WHERE datetime 匹配时间(不一定是天)

javascript - MySQL 捆绑在 NPM 应用程序中