51번 - 없어진 기록 찾기
천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요.
select o.animal_id,
o.name
from animal_ins a right join animal_outs o on a.animal_id=o.animal_id
where a.animal_id is null
order by 1, 2
RIGHT JOIN을 통한 문제 해결
- 조회 : o.animal_id, o.name
- animal_ins 테이블과 animal_outs 테이블을 animal_id로 결합
- right join을 사용한 이유 : 입양을 간 기록은 있지만 보호소에 들어온 기록이 없는 동물을 찾는거기 때문에 animal_outs 테이블에만 있는 정보를 가져와 animal_ins에 없는 동물을 추려내기 위함
- 조건 : animal_ins 테이블의 animal_id가 빈 정보를 찾아내야 하기 때문에 nulld인 경우를 where절로 조건걸기
- 순서 : 동물아이디와 이름 아이디 순으로 조회
크게 어려운 문제는 아니었다. 조금만 생각해보니 답이 나왔다
처음으로 innerj join, left join이 아닌 right join을 이용해봤는데 이런 정보를 찾을 때 사용하는구나를 깨닫게 됐다 !
'CODEKATA' 카테고리의 다른 글
Python codekata 20번 - 정수 내림차순으로 배치하기 (2) | 2024.07.10 |
---|---|
Python CODEKATA 17번, 18번 (0) | 2024.07.09 |
SQL CODEKATA 47번 48번 (1) | 2024.07.08 |
20240705 Python CODEKATA 13번, 14번 (0) | 2024.07.05 |
20240704 SQL CODEKATA 46번 (0) | 2024.07.04 |