这只是一个测试项目。我想知道如何选择一个主题中超过5名失败学生的所有教授
我已经知道如何使用以下查询选择至少有2个科目的所有教授:
SELECT paulin_professors.*,
IFNULL(sub_p.total, 0) num
FROM paulin_professors
LEFT JOIN ( SELECT COUNT(*) total, pau_profid
FROM paulin_profsubject
GROUP BY pau_profid
) sub_p ON (sub_p.pau_profid = paulin_professors.pau_profid)
WHERE sub_p.total >= 2;
我知道我已经接近但我无法上班(所有教授都有超过5名失败的学生在一门课程中)。有任何想法吗? TIA
答案 0 :(得分:0)
尝试使用SELECT with UNION
select [columnName1],[columnName2] from [Table1] where [condition] union select [columnName1],[columnName2] from [Table1] where [condition] union ....
答案 1 :(得分:0)
看起来可以使用profsubject
从JOIN
表和studentenrolled
subjid
表中获取教授ID。以与您所拥有的相似的方式,您可以获得等级低于特定通过/未通过阈值的学生的数量(在这种情况下为65)。
然后,要获得一个简短列表,您可以从此衍生表中选择不同的profids。
SELECT
distinct pau_profid
FROM
(SELECT
t1.pau_profid,
IFNULL(t2.total_failed, 0) number_failed >= 5
FROM
paulin_profsubject t1
LEFT JOIN
(SELECT
COUNT(*) total_failed,
pau_subjid
FROM
paulin_studentenrolled
WHERE
pau_grade < 65
GROUP BY
pau_subjid
) t2
ON
t1.pau_subjid = t2.pau_subjid
WHERE
number_failed >= 5
) t3;