★[SQL/프로그래머스] 오랜 기간 보호한 동물(1), OUTER JOIN

윤소영·2023년 8월 14일
0

SQL

목록 보기
2/10

문제



문제 답안

SELECT 
    I.NAME,
    I.DATETIME
FROM ANIMAL_INS I
LEFT OUTER JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE O.ANIMAL_ID IS NULL
ORDER BY DATETIME ASC
LIMIT 3;



답안 풀이

WHERE O.ANIMAL_ID IS NULL

이 부분에서

WHERE I.ANIMAL_ID IS NULL

이라고 하면 아무것도 안나오게 되는데,
왜냐면 LEFT OUTER JOIN을 했기 때문에 기준 테이블에서 NULL인 값은 없기 때문이다! (조인 테이블에서 NULL값이 생김)



OUTER JOIN

  • FULL OUTER JOIN : 1) 전체 외부 조인.
    2) 기준 테이블과 조인 테이블의 NULL인 값까지 다 보여준다.
    3) 합집합 개념.
    4) mysql에서는 full outer join을 지원하지 않는다.(단, left join과 right join을 union으로 표현 가능)



  • LEFT (OUTER) JOIN : 1) OUTER를 생략하고 LEFT JOIN이라고도 한다.
    2) 조인하려하는 테이블의 값에 없는 기준 테이블의 값을 조인 테이블에서 NULL로 보여주는거임.
    3) 기준 테이블의 값은 다 보여짐.



  • RIGHT (OUTER) JOIN : 1) OUTER를 생략하고 RIGHT JOIN이라고도 한다.
    2) 조인하려하는 테이블의 값에 없는 기준 테이블의 값을 기준 테이블에서 NULL로 보여주는거임.
    3) 조인 테이블의 값은 다 보여짐.

0개의 댓글