본문 바로가기
Algorithm/프로그래머스

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

by whdgus928 2023. 4. 28.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제

아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다.

내 풀이

1. left join으로 왼쪽 테이블 중심으로 합친다

2. limit으로 출력개수를 제한한다

SELECT i.NAME,	i.DATETIME
from ANIMAL_INS i left join ANIMAL_OUTS o on i.ANIMAL_ID=o.ANIMAL_ID
where o.DATETIME is Null
order by i.DATETIME
limit 3

 

 

배운 점

1.  join은 교집합

2. left join은 왼쪽 테이블을 중심으로 테이블 합침, 오른쪽에 없으면 null

3. right join은 오른쪽 테이블을 중심으로 테이블 합침, 왼쪽에 없으면 null

4. OUTER(FULL) JOIN은 조건에 부합하지 않는 행까지도 포함시켜 결합

※ MySql에서는 full join 지원 x, 대신 union으로 구현

반응형

댓글