728x90
https://programmers.co.kr/learn/courses/30/lessons/59042
JOIN을 설명을 자세하고 친절하게 설명해둔 블로그가 있어서
https://blog.naver.com/limsomang628/222540862439
위의 링크를 참고하면서 문제를 풀었다.
정답 코드
SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_INS INS RIGHT OUTER JOIN ANIMAL_OUTS OUTS ON (INS.ANIMAL_ID = OUTS.ANIMAL_ID)
WHERE INS.ANIMAL_ID IS NULL
ORDER BY OUTS.ANIMAL_ID;
OUTS 테이블에는 없지만 INS에는 있는 동물의 아이디를 찾아야하므로 RIGHT OUTER를 사용했다. MySQL에서는 RIGHT만 사용해도 OUTER로 알아먹고 제대로 작동한다.
ON을 기준으로 두번째 테이블을 기준으로 첫번째 테이블을 JOIN하는 RIGHT를 사용하여 JOIN하면 된다.
ON 뒤엔 합치는 기준이 나와야하는데 여기서는 각 동물의 아이디가 기준이 되기 때문에 INS.ANIMAL_ID = OUTS.ANIMAL_ID를 ON 뒤에 작성했다.
*참고로 OUT으로 테이블 명을 사용했다가 명령어랑 겹쳐서 오류가 났으니 OUTS나 A,B로 사용하는 것이 좋다!
728x90