레벨 3
JOIN
https://programmers.co.kr/learn/courses/30/lessons/59042
JOIN을 이용해 풀면 된다.
오랜만에 SQL을 해서 문법을 까먹었다.. 공부할 겸 풀이 참고했다.
주로 많이 쓰이는 것은 INNER JOIN 과 LEFT OUTER JOIN이다!
이 개념 숙지하도록!
LEFT OUTER JOIN
왼쪽에 오는 테이블을 기준으로 오른쪽에 오는 테이블과 비교하여 조건에 맞는 값이 있으면 가져오고 없으면 null 부여한다.
즉, 왼쪽 데이터는 무조건 갖고 오른쪽은 있으면 가져오고 없으면 null
문제 풀이
ANIMAL_OUTS에는 있는데 ANIMAL_INS에는 없는 동물의 ID와 이름을 조회해야 한다!
여기서 LEFT OUTER JOIN을 사용한다.
SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_OUTS OUTS
LEFT OUTER JOIN ANIMAL_INS INS
ON OUTS.ANIMAL_ID = INS.ANIMAL_ID
WHERE INS.ANIMAL_ID IS NULL
ORDER BY OUTS.ANIMAL_ID;