ANIMAL_INS 테이블, ANIMAL_OUTS 테이블 두 개를 활용하여 쿼리문을 작성하는 문제입니다.
ANIMAL_OUTS 테이블에는 있는데, ANIMAL_INS 테이블에는 없는 동물들의 ID와 이름을 ID순으로 조회해야 합니다.
JOIN 의 활용
JOIN은 두 테이블의 데이터를 일정한 조건에 의해 연결하여 마치 하나의 테이블처럼 만드는 것으로 볼 수 있습니다.
주로 많이 쓰이는 것으로 INNER JOIN과 LEFT OUTER JOIN을 들 수 있습니다.
SQL에서 강점으로 생각되는 부분이 바로 테이블간의 JOIN을 통한 데이터 추출이라고 생각합니다.
아래는 JOIN과 관련 되어 좋은 자료들을 발견하여 출처를 남기고 올리겠습니다다.
입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 id와 이름을 알고 싶은 상황입니다.
위의 자료에서는, 이 그림에 해당하는 상황입니다.
그래서 left join으로 보호소에 들어온 테이블(I)을 연결하고
where 절에서 I.ANIMAL_ID IS NULL로 보호소에 들어온 기록이 없는 데이터들로 제한합니다.
ORDER BY로 id순으로 조회하면 완성!
# JOIN 사용 버전
SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_OUTS O
LEFT JOIN ANIMAL_INS I
ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE I.ANIMAL_ID IS NULL
ORDER BY O.ANIMAL_ID;
# JOIN 사용 안 한 버전
SELECT ANIMAL_ID, NAME
FROM ANIMAL_OUTS
WHERE ANIMAL_ID NOT IN
(
SELECT ANIMAL_ID
FROM ANIMAL_INS
);
'SQL > 프로그래머스' 카테고리의 다른 글
프로그래머스 | SQL 스터디 11 (비트연산자 &) (1) | 2024.09.11 |
---|---|
프로그래머스 | SQL 스터디 10 (2) | 2024.09.10 |
프로그래머스 | SQL 스터디 9 (1) | 2024.09.03 |
프로그래머스 | SQL 스터디 8 (0) | 2024.09.03 |
프로그래머스 | SQL 스터디 7 (0) | 2024.09.03 |