2012-01-16 4 views
1

student_courses (id/student_id/course_id) 및 student_questionnaires (id/student_id/course_id/details) 테이블이 2 개 있습니다. 기본적으로 student_courses 테이블을 실행하고 (student_courses 테이블에서) 코스에 등록한 사람의 목록을 반환하지만 설문지를 작성하지 않았습니다 (student_questionnaires에 항목이 없습니다). 나는 다음 시도했다 : 나는 참여의 유형과 주변 해본 적이Mysql : 2 table Join

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 

,하지만 난 뭔가를 잘못하고 있어요 생각합니다. sq.course_id IS NULL에 대한

+0

중복 가능성 [2 개 MySQL의 테이블을 조인하는 방법 (http://stackoverflow.com/questions/5524804/how-to-join-2-mysql-tables) –

+0

@AdrianCornish 나는 속임수라고 생각하지 않는다. 그 포스터 (당신이 링크 한 질문에서)는 두 테이블의 직선적 인 JOIN을 요구하고 있습니다. 이 OP는 한 테이블에서 다른 테이블에없는 행을 요청하고 있습니다. – Aaron

+0

@ BryceAtNetwork23 그러면 다른 서버와 중복됩니다 - 가능한 모든 2 개의 join mysql 테이블 질문이 여기에 있습니다. –

답변

0

봐 :

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)