현재 대출 중인 도서가 한 권도 없는 회원을 다음 결과처럼 조회하려 한… | [SQLD] SQL 개발자 기출유형 모의고사 5회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 5회
현재 대출 중인 도서가 한 권도 없는 회원을 다음 결과처럼 조회하려 한다. ( ㉠ )에 들어갈 구문으로 옳은 것은?

[회원]

회원번호이름
1김하늘
2이도현
3박서윤
4최민준
5정유나

[대출]

대출번호회원번호도서번호상태
101111반납
102112대출중
103213반납
104311대출중
105314대출중
106512반납
107515반납
SELECT M.회원번호, M.이름
  FROM 회원 M LEFT OUTER JOIN 대출 L
    ON M.회원번호 = L.회원번호
  ( ㉠ )
 ORDER BY M.회원번호;

[결과]

회원번호이름
2이도현
4최민준
5정유나
1
AND L.상태 = '대출중' WHERE L.대출번호 IS NULL
2
AND L.상태 IN ('대출중', '반납')
3
WHERE L.상태 = '반납' OR L.상태 IS NULL
4
WHERE L.대출번호 IS NULL
해설

회원별 '대출중' 행만 ON 절에서 결합한 뒤, 결합 상대가 없어 NULL 로 채워진 회원만 WHERE 에서 고르는 ON 절 조건 + WHERE IS NULL 조합이 정답이다.

ON 조건은 결합 여부만 정하고 왼쪽 행은 보존하므로 이도현(반납만)·최민준(이력 없음)·정유나(반납만)가 NULL 결합 행으로 남아 3행이 된다.

  • WHERE L.상태 = '반납' OR L.상태 IS NULL 은 대출 중 도서가 있는 김하늘도 반납 행 때문에 남고 정유나는 두 번 나온다.
  • WHERE L.대출번호 IS NULL 은 대출 이력이 전혀 없는 최민준만 남긴다.
  • AND L.상태 IN ('대출중', '반납') 은 걸러 내는 조건이 없어 모든 회원이 대출 건수만큼 나온다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 5회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기