mysql - sql 多次计数

标签 mysql sql

我有对象训练、房间和老师。 一次训练有 0 个或多个房间。 一次培训有 0 位或几位教师。

表训练(id,name,town)

表training_room (id, id_training, id_room, enabled)

表training_teacher(id, id_training, id_teacher, enabled)

我想要属于一个城镇的培训列表,以及链接的启用房间数量 以及链接的启用教师的数量。

我在哪里可以写启用字段的条件? 这是我查询的开始。

SELECT training.id, 
       training.town , 
       COUNT ( t_r.id_formation),  
       COUNT ( t_t.id_formation)
FROM training
LEFT JOIN training_room t_r
LEFT JOIN training_teacher t_t
WHERE training.town ='X'
GROUP BY training.id

非常感谢。

最佳答案

假设我已经理解了问题:

SELECT training.id, 
       training.town , 
       COUNT ( distinct t_r.id),  
       COUNT ( distinct t_t.id)
FROM training t
LEFT JOIN training_room t_r ON t.id = t_r.id_training AND t_r.enabled = 'true'
LEFT JOIN training_teacher t_t ON t.id = t_t.id_training AND t_t.enabled = 'true'
WHERE training.town ='X'
GROUP BY training.id

关于mysql - sql 多次计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7158480/

相关文章:

python - 替换 SQL 查询中的值

c# - MySQL 存储过程参数不起作用

mysql - 访问 Azure MySQL 服务

mysql - 比较内部消息传递的两个数据库设计

sql sp_xp_cmdshell_proxy_account 错误

php - MYSQL 查询可以从日期时间字段中选择插入日期等于更新日期的记录

java - 如何使用 MySQL 和 Hibernate 设置 group_concat_max_len

sql - ActiveRecord find_each 结合 limit 和 order

sql - 如何在sql server 2005中给xml节点添加属性

sql - 如何从终端打开 Azure Data Studio 的新窗口