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

728x90

 

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

 

 

아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 보호 시작일 순으로 조회하는 SQL

 

☞  ANIMAL_INS 에는 존재하나,  ANIMAL_OUTS 에는 존재하지 않는 데이터

 

MySQL

SELECT INS.NAME, INS.DATETIME
FROM ANIMAL_INS INS LEFT OUTER JOIN ANIMAL_OUTS OUTS
USING ( ANIMAL_ID )
WHERE OUTS.ANIMAL_ID IS NULL
ORDER BY INS.DATETIME
LIMIT 3;

 

Oracle DB

SELECT INS.NAME, INS.DATETIME
FROM ANIMAL_INS INS LEFT OUTER JOIN ANIMAL_OUTS OUTS
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE OUTS.ANIMAL_ID IS NULL
ORDER BY INS.DATETIME
FETCH FIRST 3 ROWS ONLY;

( Oracle DB 에서 USING 절을 사용하지 못 하는 이유는 USING 절에 사용된 칼럼의 앞에 접두사가 쓰일 수 없는데 WHERE 절에서 USING 절에 사용된 칼럼 중 한 테이블에만 조건을 적용시키려면 접두사가 필요하기 때문 )

 

 

반응형