728x90
https://programmers.co.kr/learn/courses/30/lessons/59042
코딩테스트 연습 - 없어진 기록 찾기
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디
programmers.co.kr
outs테이블에는 있는데 ins테이블에는 존재하지않는 튜플들을 찾는 문제이다.
left join을 사용하면
select outs.animal_id, outs.name
from animal_outs outs left join animal_ins ins on ins.animal_id = outs.animal_id
where ins.animal_id is null
right join을 사용하면
select outs.animal_id, outs.name
from animal_ins ins right join animal_outs outs on ins.animal_id = outs.animal_id
where ins.animal_id is null
설명 :
from 다음에 테이블이 왼쪽으로, left join 이후의 테이블이 오른쪽으로 간다.
즉 outs 테이블이 왼쪽으로, ins테이블이 오른쪽에 위치한다.
left join은
여기서 left join이므로 왼쪽테이블(outs)를 기준으로 join된다.
outs에 없는 ins(오른쪽에 붙은 테이블)은 null값을 가지게 된다.
그래서 where 조건으로 is null을 붙여준다.
right join은
여기서 right join이므로 오른쪽테이블(outs)를 기준으로 join된다.
outs에 없는 ins(왼쪽에 붙은 테이블)은 null값을 가지게 된다.
그래서 where 조건으로 is null을 붙여준다.
반응형
'3-2 > DB' 카테고리의 다른 글
[mysql][프로그래머스]SQL 고득점 kit 답!! (0) | 2022.03.04 |
---|---|
[mysql]Workbench_ER다이어그램 그리는 법 (0) | 2021.12.10 |
[mysql] not in , in , exists, not exists 예시 (0) | 2021.11.17 |
[Mysql]Trigger생성과 삭제(feat. delimiter) (0) | 2021.10.25 |
MySQL 기본 실습 - show databases(1) (0) | 2021.09.10 |