https://school.programmers.co.kr/learn/courses/30/lessons/59044
문제
아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 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으로 구현
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 파이썬 문제풀이 - 다리를 지나는 트럭 (0) | 2023.05.04 |
---|---|
[프로그래머스] 파이썬 문제풀이 - 숫자 변환하기 (0) | 2023.05.04 |
[프로그래머스] SQL 문제풀이 - 조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2023.04.27 |
[프로그래머스] 파이썬 문제풀이 - 프로세스 (0) | 2023.04.25 |
[프로그래머스] 파이썬, 자바 문제풀이 - [1차] 캐시 (0) | 2023.04.24 |
댓글