Mysql 如何找到在整个考试期间在同一日期有多个考试的所有学生
我有一个由学生编号、科目、考试日期组成的表,通过使用此查询,我可以找到有多个考试的学生Mysql 如何找到在整个考试期间在同一日期有多个考试的所有学生,mysql,sql,Mysql,Sql,我有一个由学生编号、科目、考试日期组成的表,通过使用此查询,我可以找到有多个考试的学生 SELECT student_number, subject, exam_date FROM tables WHERE dates ='01-01-2019' And student_number IN ( SELECT student_number FROM tables WHERE dates ="01-01-2019"
SELECT
student_number, subject, exam_date
FROM
tables
WHERE
dates ='01-01-2019' And
student_number IN (
SELECT student_number
FROM tables WHERE dates ="01-01-2019"
GROUP BY student_number
HAVING COUNT(student_number) > 1
)
但是,我希望找到在考试日期列表的整个期间内,在同一日期有多个考试的所有学生,而不是单独键入每个日期 您与您的团队非常接近
SELECT student_number, exam_date
FROM tables
GROUP BY student_number, exam_date
HAVING count(*)>1
这应该让你开始,你和你的小组有了正确的想法…我想如果一个学生在同一天有多个考试,这些考试将在不同的科目上。 因此,您可以使用EXISTS获取所需:
SELECT student_number, subject, exam_date
FROM tables t
WHERE EXISTS (
SELECT 1 FROM tables
WHERE
student_number = t.student_number
AND
exam_date = t.exam_date
AND
subject <> t.subject
)