테이블 index
ANIMAL_INS
NAME | TYPE | NULLABLE |
ANIMAL_ID | VARCHAR(N) | FALSE |
ANIMAL_TYPE | VARCHAR(N) | FALSE |
DATETIME | DATETIME | FALSE |
INTAKE_CONDITION | VARCHAR(N) | FALSE |
NAME | VARCHAR(N) | TRUE |
SEX_UPON_INTAKE | VARCHAR(N) | FALSE |
ANIMAL_OUTS
NAME | TYPE | NULLABLE |
ANIMAL_ID | VARCHAR(N) | FALSE |
ANIMAL_TYPE | VARCHAR(N) | FALSE |
DATETIME | DATETIME | FALSE |
NAME | VARCHAR(N) | TRUE |
SEX_UPON_OUTCOME | VARCHAR(N) | FALSE |
문제
천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요.
예시

풀이
소실된 데이터를 찾기 위해서는
OUTS
에는 있고, INS
에는 없는 데이터를 찾아야 한다. 그렇기 때문에 Inner Join
을 사용하게 조건에 일치하는 데이터만 가져오기 때문에 outer join
을 사용해야한다.SELECT *
from ANIMAL_INS a right outer JOIN ANIMAL_OUTS b
ON a.ANIMAL_ID = b.ANIMAL_ID
join
을 하고, where절
에서 INS
의 데이터가 null
인 경우만 출력하면 된다.SELECT b.ANIMAL_ID, b.NAME
from ANIMAL_INS a right outer JOIN ANIMAL_OUTS b
ON a.ANIMAL_ID = b.ANIMAL_ID
where a.animal_id is null


Share article