출처
문제
입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요.
문제에 대한 해석
1. 조건:입양데이터에는 있지만 보호소데이터에는 없는
2. 조회: 동물ID,이름
3. 순서: 동물ID 오름차순
풀이(MYSQL)
select outs.animal_id, outs.name
from animal_outs outs left join animal_ins ins
on outs.animal_id = ins.animal_id
where ins.animal_id is null
order by outs.animal_id ;
작동순서
💡SQL 실행 순서는 From -> Where -> Group by -> Having -> Select -> Order by ->결과반환
- FROM 절: animal_outs 와 animal_ins을 animal_id를 기준으로 left join(inner join의 경우 공통된 데이터만 조회되니까 leftjoin을 통해 곹옹되지 않은 데이터도 조회)
- WHERE 절: animal_ins테이블에 animal_id가 null값인 것(즉, animal_outs에 있지만 animal_ins에 없는) 필터링
- SELECT 절: outs.animal_id, outs.name
- ORDER BY 절: outs.animal_id오름차순
- 결과반환: animal_outs에 있지만 animal_ins에는 없는 animal_id,name
배운점
- 다양한 join의 활용
'문제풀이 > SQL(My sql)' 카테고리의 다른 글
[문제풀이] 조건에 부합하는 중고거래 상태 조회하기 (0) | 2024.01.22 |
---|---|
[문제풀이] 과일로 만든 아이스크림 고르기 (0) | 2024.01.19 |
[문제풀이] 5월 식품들의 총매출 조회하기 (0) | 2024.01.19 |
[문제풀이] 즐겨찾기가 가장 많은 식당 정보 출력하기-window(?) (1) | 2024.01.11 |
[문제풀이] 거래가격 조회/가격대 별 상품 개수 구하기 (0) | 2024.01.10 |