查找两个表之间的缺失值
find missing values between two tables
我有两个表,名为 selected_courses 和 all_courses。我想用 sql 查询查找未 select 的课程。
表格:
selected_course all_courses
+---------------+ +------------+
student_id|course_id course_id|course_name
+---------------+ +------------+
1 A1 A1
1 A2 A2
1 A3 A3
2 A2 A4
2 A3
select all_courses.* 来自 all_courses 其中不存在(select course_id 来自 selected_courses 其中 student_id= '1')
此查询returns无
select all_courses.* 来自 all_courses left join selected_courses on selected_courses.course_id =all_courses.course id
在此查询中,我无法应用 student_id='1' 条件。
如何应用此条件或使用不存在的条件?
尝试进行左连接,然后排除所有具有空值的条目
SELECT all_courses.*, sc.student_id
FROM all_courses AS ac
LEFT JOIN selected_courses AS sc ON (sc.course_id = al.course id)
WHERE sc.student_id IS NULL
如果您想为特定学生执行此操作,请执行以下操作:
SELECT a.course_id, a.course_name
FROM all_courses a
LEFT JOIN selected_courses s ON a.course_id = s.course id AND s.student_id = 1
WHERE s.student_id IS NULL
我发现使用不存在
select all_courses.courses_id from all_courses where not exists (select selected_courses.course_id from taken_courses where selected.course_id=all_courses.course_id and selected_courses.student_id='1')
我有两个表,名为 selected_courses 和 all_courses。我想用 sql 查询查找未 select 的课程。 表格:
selected_course all_courses
+---------------+ +------------+
student_id|course_id course_id|course_name
+---------------+ +------------+
1 A1 A1
1 A2 A2
1 A3 A3
2 A2 A4
2 A3
select all_courses.* 来自 all_courses 其中不存在(select course_id 来自 selected_courses 其中 student_id= '1')
此查询returns无
select all_courses.* 来自 all_courses left join selected_courses on selected_courses.course_id =all_courses.course id
在此查询中,我无法应用 student_id='1' 条件。
如何应用此条件或使用不存在的条件?
尝试进行左连接,然后排除所有具有空值的条目
SELECT all_courses.*, sc.student_id
FROM all_courses AS ac
LEFT JOIN selected_courses AS sc ON (sc.course_id = al.course id)
WHERE sc.student_id IS NULL
如果您想为特定学生执行此操作,请执行以下操作:
SELECT a.course_id, a.course_name
FROM all_courses a
LEFT JOIN selected_courses s ON a.course_id = s.course id AND s.student_id = 1
WHERE s.student_id IS NULL
我发现使用不存在
select all_courses.courses_id from all_courses where not exists (select selected_courses.course_id from taken_courses where selected.course_id=all_courses.course_id and selected_courses.student_id='1')