0
我已经很困在大楼的查询,这是统计的特殊情况SQL连接+计数
我有appearences:
teachers {id, email, first_name, last_name,...}
faculties {id, name}
pupils {id, name, teacher_id} //every pupil has their own curator
faculties_teachers {id, teacher_id, faculty_id}
查询尝试检查数据的完整性。应该没有重复。
我需要得到一个查询与每老师在学院的学生数量。
这个查询工作绝对没问题,直到我说我试图计算每个院系不同的学生(他们确实是,在我的情况下,唯一的:))
SELECT u1.id, u2.id, u1.owner, u2.owner, u1.email, u1.first_name, u2.last_name, u1.name_of_site, faculties_teachers.faculty_id, faculties.name,
(SELECT COUNT(pupils.*) FROM pupils as p WHERE faculties.id = pupils.faculty_id)
FROM `teachers` AS u1
JOIN `teachers` AS u2 ON u1.email = u2.email
JOIN `faculties_teachers` AS ft ON u1.id = ft.teacher_id
JOIN `faculties` ON faculties.id = ft.faculty_id
JOIN `pupils` ON faculties.id = pupils.faculty_id
WHERE u1.id < u2.id
ORDER BY `u1`.`id` ASC
你加入'老师'两次?样本数据和期望的结果将有所帮助,并说明你想要做什么。 –
嗨戈登, 其实我们在我们的系统中有几个问题: - 不当的'老师删除'功能,只删除老师,没有依赖关系(faculties_teachers)。 因此,当有人想要获得教师的所有教师时,他们会看到很多空行,这是错误的。 - 不当的“导师导师”的功能......这使教师的数据翻倍...... 因此,在1个查询中,我想“全部杀死”:) 现在我有一些大量的工作,但后来我会解决这个问题。 我认为它很有用。 –