다음 SQL 의 실행 결과로 옳은 것은? (정렬 시 NULL 은 마지막… | [SQLD] SQL 개발자 기출유형 모의고사 4회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 4회
다음 SQL 의 실행 결과로 옳은 것은? (정렬 시 NULL 은 마지막에 온다)

[예약]

예약번호좌석
112A
212B
3(null)
414C

[탑승]

탑승번호좌석
9112A
92(null)
9315D
9412B
SELECT R.예약번호, B.탑승번호
  FROM 예약 R FULL OUTER JOIN 탑승 B
    ON R.좌석 = B.좌석
 ORDER BY R.예약번호, B.탑승번호;
1
예약번호탑승번호
191
294
392
4(null)
(null)93
2
예약번호탑승번호
191
294
3(null)
4(null)
3
예약번호탑승번호
191
294
3(null)
4(null)
(null)92
(null)93
4
예약번호탑승번호
191
191
294
294
3(null)
4(null)
(null)92
(null)93
해설

FULL OUTER JOIN 은 좌석이 같은 1-91, 2-94 두 쌍에 더해 양쪽에서 짝을 찾지 못한 행을 모두 NULL 과 결합해 남기므로 6행이다.

좌석이 NULL 인 예약 3과 탑승 92는 NULL = NULL 이 참이 아니므로 서로 매칭되지 않고, 각각 상대 열이 NULL 인 행으로 따로 나온다.

  • 3과 92를 한 행으로 묶은 표는 NULL 끼리 같다고 본 결과이다.
  • 매칭 행을 두 번씩 넣은 표는 LEFT 와 RIGHT 결과를 중복 제거 없이 더한 것이다.
  • 탑승 92·93이 빠진 표는 LEFT OUTER JOIN 의 결과이다.

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

이어서 풀어보기

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