我有对象训练、房间和老师。 一次训练有 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/