3월 진료 기록이 없는 환자를 조회하려 한다. 다음 결과를 얻기 위해 … | [SQLD] SQL 개발자 기출유형 모의고사 6회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 6회
3월 진료 기록이 없는 환자를 조회하려 한다. 다음 결과를 얻기 위해 빈칸에 들어갈 구문으로 옳은 것은?

[환자]

환자번호환자명
P1윤채아
P2길도현
P3성예서
P4탁민규
P5현소율

[진료]

진료번호환자번호진료월
1P13
2P14
3P24
4P33
5P5(null)
SELECT P.환자번호, P.환자명
  FROM 환자 P LEFT OUTER JOIN 진료 J
    ON P.환자번호 = J.환자번호
  (   빈칸   )
 ORDER BY P.환자번호;

[빈칸 후보]

㉠ AND J.진료월 = 3 WHERE J.진료번호 IS NULL
㉡ WHERE J.진료월 = 3 AND J.진료번호 IS NULL
㉢ AND J.진료월 = 3 AND J.진료번호 IS NULL
㉣ WHERE J.진료월 = 3 OR J.진료번호 IS NULL

[원하는 결과]

환자번호환자명
P2길도현
P4탁민규
P5현소율
1
㉢
2
㉠
3
㉣
4
㉡
해설

3월 조건을 ON 절에 두면 3월 진료만 조인되고 나머지 환자는 J 열이 NULL 로 보존되므로, WHERE J.진료번호 IS NULL 로 짝이 없는 P2·P4·P5 만 고를 수 있다.

P2 는 4월 진료만, P5 는 진료월이 NULL 인 진료만 있어 ON 조건을 통과하지 못하고 P4 는 진료가 아예 없다.

  • 월 조건을 WHERE 로 옮기면 IS NULL 과 동시에 참일 수 없어 0행이다.
  • 두 조건을 모두 ON 에 두면 아무 행도 거르지 않아 환자 5명이 다 나온다.
  • WHERE 의 OR 조건은 3월 진료가 있는 P1·P3 와 P4 를 고른다.

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

이어서 풀어보기

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