본문 바로가기
  • 실행력이 모든걸 결정한다
DB/SQL Problems

[SQL-JOIN, 난이도 중하] 없어진 기록 찾기

by 김코더 김주역 2020. 12. 7.
반응형

<ANIMAL_INS> 테이블

 

<ANIMAL_OUTS> 테이블

 

문제 설명

 

해설 : ANIMAL_INS, ANIMAL_OUTS 테이블에 있는 동물들은 각각 보호소에 왔던 동물들, 입양 간 동물들이다.

보호소에 들어온 기록은 없고 입양을 간 기록만 있는 동물들을 벤 다이어그램으로 나타내면 다음과 같다. (A=ANIMALS_INS, B=ANIMAL_OUTS)

A를 B와 RIGHT JOIN을 해주고 A 부분을 제거해주면 해당 테이블을 만들 수 있다.

이 테이블에서 ANIMAL_OUTS의 ANIMAL_ID를 기준으로 오름차 순 적용하여, 문제가 원하는 정보인 ANIMAL_ID, NAME 값을 레코드마다 추출하여 반환해주면 된다.

 

SELECT AO.ANIMAL_ID, AO.NAME 
FROM ANIMAL_INS AI RIGHT JOIN ANIMAL_OUTS AO
ON AI.ANIMAL_ID = AO.ANIMAL_ID 
WHERE AI.ANIMAL_ID IS NULL
ORDER BY AO.ANIMAL_ID;

 

 

 

 

* FROM문에서 ANIMAL_INS를 AI로, ANIMAL_OUTS를 AO로 사용할 수 있게 설정했다.

 

SELECT : 조회하라

 

AO.ANIMAL_ID, AO.NAME : ANIMAL_OUTS 테이블에 있는 ANIMAL_ID, NAME 필드값들을

 

FROM ANIMAL_INS AI RIGHT JOIN ANIMAL_OUTS AO
ON AI.ANIMAL_ID = AO.ANIMAL_ID 
WHERE AI.ANIMAL_ID IS NULL
 :

ANIMAL_ID를 기준으로 ANIMAL_OUTS에만 있는 레코드들 중에서 (단, 앞으로 ANIMAL_INS 대신 AI를, ANIMAL_OUTS 대신 AO를 사용할 수 있게 한다)

 

ORDER BY AO.ANIMAL_ID  : ANIMAL_OUTS 테이블의 ANIMAL_ID를 기준으로 오름차순 하여

반응형

댓글