코딩 테스트 연습/프로그래머스

[프로그래머스] 없어진 기록 찾기(Oracle, Lv3)

ThinkFree 2022. 5. 24. 19:01

 

테이블 구조

 ANIMAL_INS

 ANIMAL_OUTS

 

문제 설명

 

ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블을 연결해야 합니다.

- 보호소에 들어온 기록이 없는 동물의 IDNAME을 출력합니다.

- 이때 순서는 아이디 순으로 정렬합니다.

 

  • 두 개의 테이블 연결 : 테이블 연결 JOIN
  • ~이 없는 : 널(NULL)값 확인 IS NULL
  • 아이디 순으로 정렬 : 정렬 ORDER BY

 

Solution

ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블을 불러옵니다.

 

ANIMAL_OUTS ANIMAL_ID ANIMAL_INS의 외래키이므로 서로의 ID를 = 을 사용하여 연결시켜줍니다.

- ANIMAL_INS의 데이터가 유실되어 ANIMAL_OUTS이 기준이 되어야 합니다.

  그러므로 ANIMAL_INS ID (+)를 주어 RIGHT OUTER JOIN이 되게 합니다.

 

 + 4~5 LINE은 위와 같이 바꾸어 쓸 수 있습니다.

 

- OUTER JOIN을 사용하게 되면 위와 같이 기준 테이블이 붙는 모양의 데이터가 출력됩니다.

 

 - ANIMAL_INS 널(NULL)값 확인 IS NULL을 사용하여 입양 간 기록은 있지만, 보호소에 들어온 기록은 없는 동물들을 조회하고, ORDER BY를 사용하여 데이터를 정렬시켜주면 됩니다.

 

출처

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