Mysql:2表加入

时间:2012-01-16 03:00:25

标签: mysql

我有2个表:student_courses(id / student_id / course_id)和student_questionnaires(id / student_id / course_id / details)。基本上,我想通过student_courses表并返回一个已经注册课程的人员列表(在student_courses表中),但是没有填写调查问卷(student_questionnaires中没有条目)。我尝试了以下内容:

SELECT sc.* FROM student_courses as sc
LEFT JOIN student_questionnaires as sq on sq.course_id=sc.course_id AND sq.student_id=sc.student_id

我已经玩过加入的类型,但我认为我做错了。

3 个答案:

答案 0 :(得分:0)

SELECT sc.* 
FROM student_courses as sc
WHERE sc.student_id NOT IN (SELECT student_id FROM student_questionnaires)

答案 1 :(得分:0)

寻找sq.course_id IS NULL

SELECT sc.*
FROM
  student_courses sc
  LEFT JOIN student_questionnaires sq ON sc.student_id = sq.student_id AND sc.course_id = sq.course_id
WHERE sq.course_id IS NULL

答案 2 :(得分:0)

试试这个:

SELECT DISTINCT Student_ID
FROM Student_Courses
WHERE LENGTH(COALESCE(Course_ID)) <> 0 AND Student_ID NOT IN 
    (SELECT student_id Student_Questionnaires)