2017-10-07 4 views
-1

테이블 세트가 있고이를 사용하여 특정 정보를 표시하는 방법을 모르겠습니다. 테이블의 구조는 다음과 같습니다.쿼리를 작성하는 방법을 알아낼 수 없습니다.

profs 
profs_id | name 

teaching 
profs_id | course_id 

courses 
course_id | course_title 

아직 지정된 코스가없는 모든 교수자를 표시하려고합니다. 다음 쿼리를 작성했지만 제대로 작동하지 않습니다.

SELECT p.name 
    FROM profs p 
    JOIN teaching t 
    ON p.id_profs <> t.id_profs; 

어떻게 해결할 수 있습니까?

+0

나는 또한 시도 : 페이지를 선택

구글 이미지 검색 (SQL 당국의 제공)에서이 이미지는이 그림으로

enter image description here

이 결과, 쿼리가로 일하는 것이 설명 .name FROM profs p JOIN 티칭 on p.id_profs = t.id_profs WHERE p.id_profs <> t.id_profs; 그것은 둘 다 작동하지 않습니다. – AndrB

+2

기본 서적이나 초보자 용 자습서로 충분합니다. – Strawberry

답변

0

당신은 왼쪽이 FROM 절 (각 교수에 대한 즉 하나 개의 항목)에서 모든 레코드를 사용하여 다음 표를 가입 왼쪽에서 모든 레코드에 참여합니다 가입 사실을 활용할 수 있습니다. 그러므로, 배정 된 코스가없는 교수는 그의 기록을 위해 코스 ID를 가지지 않을 것입니다. WHERE 절에 지정하면 완료됩니다. 당신이 달성 할 수있는 조인 당신이 그들을 달성하는 것입니다 방법의

SELECT p.name 
FROM profs p 
LEFT JOIN teaching t ON t.profs_id = p.profs_id 
WHERE t.course_id IS NULL 
+1

감사합니다! 그것은 효과가있다! 당신은 그것을 이해하도록 더 분명하게 만들었습니다! :디 – AndrB

0
SELECT 
Profs.name 
FROM profs, teaching 
WHERE profs.profs_id = teaching.prof_id 
    AND course_id ISNULL 
0

This question는 유형을 설명합니다. 이 경우, LEFT OUTER JOIN null을 원할 수 있습니다.

SELECT p.name 
    FROM profs p 
    LEFT OUTER JOIN teaching t 
    ON p.id_profs = t.id_profs 
    WHERE t.id_profs IS NULL; 
관련 문제