코딩테스트

[프로그래머스] [SQL] 없어진 기록 찾기

히그다스 2023. 10. 24. 13:41

 

 

거의 일주일만에 돌아온 코테

SQL 집중 기간이라 SQL로 돌아옴

 

 

 

 

나간 기록은 있는데 들어온 기록이 없다

=> outs에 ins를 붙여야겠다는 생각이 먼저 들었다

 

left join을 썼다

=> outs에 있고 ins에 없는걸 null로 합쳐질 수 있도록!

 

그리고 is null인걸로 걸러내기 완성

 

 

SELECT ANIMAL_OUTS.ANIMAL_ID, ANIMAL_OUTS.NAME
FROM ANIMAL_OUTS LEFT JOIN ANIMAL_INS ON ANIMAL_OUTS.ANIMAL_ID = ANIMAL_INS.ANIMAL_ID
WHERE ANIMAL_INS.ANIMAL_ID is null;

 

 

당연히 join으로 하면 두 테이블 모두에서 있는 것만 합쳐지기 때문에 성립되지 않는다

 

그렇다면 right join은? 

=> 된다 그렇지만 굳이 ..?라는 생각이 든다

실무에서는 join이랑 left join이 더 많이 쓰인다는 얘기도 들었고

기준이 되는 테이블이 왼쪽에 있는게 더 편하지 않나?

 

여튼 되긴 된다

 

 

SELECT ANIMAL_OUTS.ANIMAL_ID, ANIMAL_OUTS.NAME
FROM ANIMAL_INS RIGHT JOIN ANIMAL_OUTS ON ANIMAL_INS.ANIMAL_ID = ANIMAL_OUTS.ANIMAL_ID
WHERE ANIMAL_INS.ANIMAL_ID is null;

 

 


출처 : 프로그래머스