[프로그래머스] 없어진 기록 찾기
2020. 4. 26. 03:11ㆍDatabase/practice
문제 URL (https://programmers.co.kr/learn/courses/30/lessons/59042)
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조은 다음과 같습니다.
ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같습니다.
천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요.
테이블 ANIMAL_OUTS 와 테이블 ANIMAL_INS, 각각에 대해서 ANIMAL_ID와 NAME을 추출해보았다.
ANIMAL_OUTS 테이블을 기준으로 LEFT JOIN 명령어를 사용하여 ANIMAL_INS 테이블을 합쳤다.
1
2
3
4
|
SELECT OUTS.ANIMAL_ID AS OUT_ANIMAL_ID, OUTS.NAME AS OUT_NAME,
INS.ANIMAL_ID AS IN_ANIMAL_ID, INS.NAME AS IN_NAME
FROM ANIMAL_outs as outs left join animal_ins as ins
on OUTS.ANIMAL_ID = INS.ANIMAL_ID
|
위 그림을 보면, 테이블 ANIMAL_OUTS에 있는 ANIMAL_ID를 기준으로 JOIN 했기 때문에 ANIMAL_INS에 없는 ANIMAL_ID와 관련된 튜플 값은 NULL로 들어가 합쳐진다.
1
|
WHERE INS.ANIMAL_ID IS NULL
|
따라서 보호소에 들어오지 않았지만, 입양된 동물에 대한 ID와 NAME은 다음과 같은 SQL 문으로 구할 수 있다.
1
2
3
4
5
|
SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_OUTS AS OUTS LEFT JOIN ANIMAL_INS AS INS
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE INS.ANIMAL_ID IS NULL
ORDER BY OUTS.ANIMAL_ID
|
'Database > practice' 카테고리의 다른 글
[oracle] 연습1 (0) | 2020.08.24 |
---|---|
[온라인쇼핑몰상품관리] Schema 설계-초안 (0) | 2020.06.02 |
[프로그래머스]있었는데요 없었습니다 (0) | 2020.04.26 |
[프로그래머스] 입양 시각 구하기(2) (0) | 2020.04.25 |
[프로그래머스] 입양 시각 구하기(1) (0) | 2020.04.25 |