作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个表,一个类(class)表和一个出勤表。类(class)表保存所提供类(class)的记录出勤表保存参加类(class)的学生姓名和电子邮件以及参加日期的记录。
我需要选择所有出勤记录,其中学生恰好参加了所提供的 3 门类(class)中的 2 门,并输出完成 3 门类(class)所需的第 3 门无人值守类(class)。
类(class)表结构:
id : int
course_title : varchar
course_level : int
考勤表结构:
id : int
course_id : int
student_name : varchar
student_email : varchar
attended_date : date
最佳答案
尝试此解决方案(如发现 here )
SELECT t1.email, course.course_title
FROM (SELECT email
FROM attendance
JOIN course
ON attendance.course_id = course.id
AND course.course_level = 1
GROUP BY email
HAVING COUNT(DISTINCT attendance.course_id) = 2) AS t1
CROSS JOIN course
LEFT JOIN attendance
ON attendance.course_id = course.id
AND attendance.email = t1.email
WHERE course.course_level =1
AND attendance.id IS NULL;
关于MySQL:选择参加三门不同类(class)的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21918780/
我是一名优秀的程序员,十分优秀!