[SQL - 코딩테스트] 없어진 기록 찾기

sohee jung·2022년 9월 27일
0

SQL

목록 보기
4/4

문제

천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요.

ANIMAL_OUTS 테이블에서

Allie의 ID는 ANIMAL_INS에 없으므로, Allie의 데이터는 유실되었습니다.
Gia의 ID는 ANIMAL_INS에 있으므로, Gia의 데이터는 유실되지 않았습니다.
Spice의 ID는 ANIMAL_INS에 없으므로, Spice의 데이터는 유실되었습니다.

따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.


코드

  • 기존 코드
SELECT ANIMAL_OUTS.ANIMAL_ID, ANIMAL_OUTS.NAME
FROM ANIMAL_OUTS
LEFT JOIN ANIMAL_INS
ON ANIMAL_INS.ANIMAL_ID = ANIMAL_OUTS.ANIMAL_ID
WHERE ANIMAL_INS.ANIMAL_ID IS NULL
ORDER BY ANIMAL_OUTS.ANIMAL_ID
  • 수정 코드
SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_OUTS AS OUTS
LEFT JOIN ANIMAL_INS AS INS
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE INS.ANIMAL_ID IS NULL
ORDER BY OUTS.ANIMAL_ID

테이블명이 너무 길어서 AS활용해서 별명 설정해주;


접근


1. 왼쪽에 OUTS 테이블을 두고 오른쪽에 INS 테이블을 둠
2. LEFT JOIN을 이용하면 왼쪽의 OUTS 테이블에만 존재하는 정보만 SELECT 할 수 있음

profile
짱이 될거야

0개의 댓글