2012-01-16 158 views
1

我有2個表格:student_courses(id/student_id/course_id)和student_questionnaires(id/student_id/course_id/details)。基本上,我想穿過student_courses表並返回任何註冊了課程的人列表(在student_courses表中),但未填寫調查表(student_questionnaires中沒有條目)。我試過以下內容:Mysql:2表加入

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 

我已經玩過了加入類型,但我認爲我做錯了什麼。

+0

可能重複[如何加入2個MySQL表(http://stackoverflow.com/questions/5524804/how-to-join-2-mysql-tables) – 2012-01-16 03:14:05

+0

@AdrianCornish我不認爲這是一個騙局。這張海報(來自你鏈接的問題)是要求兩個表格直接連接。該OP要求在一個表中不在另一個表中的行。 – Aaron 2012-01-16 03:24:39

+0

@ BryceAtNetwork23然後它是另一個重複 - 所有可能的2連接mysql表問題已被問到這裏 – 2012-01-16 03:26:53

回答

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 
0
SELECT sc.* 
FROM student_courses as sc 
WHERE sc.student_id NOT IN (SELECT student_id FROM student_questionnaires) 
0

試試這個:

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