DLife Planet

[쿼리 공부] 상급 2 있었는데요 없었습니다 (공식 JOIN 1) 본문

DataScience

[쿼리 공부] 상급 2 있었는데요 없었습니다 (공식 JOIN 1)

Western_Gem 2020. 11. 19. 12:53
반응형

JOIN이 들어간 예제입니다.


관리자의 실수로 일부 동물의 입양일이 잘못 입력되었습니다. 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일이 빠른 순으로 조회해야 합니다.

[해설]

ins에 해당하는 입양일이 outs보다 빠른 경우를 join on의 on 조건에 넣으면 됩니다. (on에서 처리하면 두 테이블을 처음 조회할 때 연산이 되기 때문에, where에서보다 프로시저가 빠릅니다. 성능상 먼저 쓰는 것을 권해 드립니다.)


[정답]

(Oracle/Mysql) 모범 답안

SELECT i.animal_id, i.name FROM ANIMAL_INS i INNER JOIN ANIMAL_OUTS o  
ON i.datetime > o.datetime AND i.animal_id = o.animal_id ORDER BY i.datetime ASC;


반응형
Comments