#문제 설명
- 기관에 들어온 기록은 없고(유실)
- 입양 보냈다는 기록은 있는 상태의
- 동물 id와 이름을 조회
# 풀이 1 - LEFT OUTER JOIN 을 이용하여 풀이
# 풀이 2 - RIGHT OUTER JOIN 을 이용하여 풀이
+ AND B.NAME IS NOT NULL 조건 안 해주면
+ RIGHT OUTER JOIN 이기 때문에 입양 테이블 데이터 다 살려줌
+ 기관에 들어온 기록이 없는 동물이 맞지만, 입양된 기록도 없는 동물이다. 조건에 맞지 않음
## LEFT OUTER JOIN 사용한 경우
- :: 결과표에 왼쪽 테이블 기준 :
- 왼쪽 테이블에서 조건에 맞지 않아서 매칭 안된 - 남아있는 ROW 모두 출력
- 오른쪽 테이블 있는 - 매칭 안된 데이터 ROW들은 안 나옴
## RIGHT OUTER JOIN 사용한 경우
- :: 결과표에 오른쪽 테이블 기준 :
- 오른쪽 테이블에서 조건에 맞지 않아서 매칭 X - 남아있는 ROW 모두 출력
- 왼쪽 테이블에 있는 - 매칭 안된 데이터 ROW들은 안 나옴
# 풀이 3 - NOT IN 함수를 이용하여 풀이
REVIEW
JAVA 문제 풀이때도 그랬지만 역시 함수를 알고
적절하게 사용하면 코드도, 쿼리도 간단해지는구나 느꼈다.
LEFT JOIN과 RIGHT JOIN을 실습해 볼 수 있는
문제라서 좋았고, 조금 더 이해할 수 있었다.
실제 어느 상황에서 응용 가능할지는
추후에 더 알아보아야할 것 같아서
제목은 한쪽에만 있는 정보 가져오기로 지었다.
'Programmers > Oracle' 카테고리의 다른 글
[ ANSI JOIN ] , [ Oracle Join ] - 배송 예정일과 도착일 비교 (0) | 2022.06.07 |
---|---|
[ HAVING ] 두 번이상 주문한 사람의 이름과 횟수 알아내기 (0) | 2022.06.01 |
[ LIMIT, MIN-MAX ] 가장 먼저 들어온 값 1개 / 가장 늦게 들어온 값 1개 (0) | 2022.06.01 |