본문 바로가기
Problem Solving/프로그래머스 SQL

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

by Libi 2021. 8. 10.
반응형

https://programmers.co.kr/learn/courses/30/lessons/59044

 

코딩테스트 연습 - 오랜 기간 보호한 동물(1)

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

[ 문제풀이 ]

두 개의 테이블이 주어졌을 때 JOIN을 사용해서 투 테이블을 조합할 수 있는지를 묻는 문제이다.

JOIN을 할 때 조심해야 할 점은 ON과 WHERE의 차이이다. 둘 다 조건을 통해 걸러 내주는 역할을 수행하지만 조건이 적용되는 시점의 차이가 존재한다.

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

/*
 * JOIN은 1.ON, 2.WHERE 순서로 걸러냄
 * 만약 ON I.ANIMAL_ID = O.ANIMAL_ID AND O.ANIMAL_ID IS NULL로 하면
 * 두 조건에 걸러지는 테이블이 나오기때문에 다른 결과를 도출
*/

 

 

반응형

댓글