Post

[프로그래머스] SQL 고득점 Kit - JOIN

문제 링크

문제

없어진 기록 찾기
있었는데요 없었습니다
오랜 기간 보호한 동물(1)
보호소에서 중성화한 동물

없어진 기록 찾기

LEFT JOIN을 사용할 수 있는지 묻는 문제. LEFT JOIN은 묵시적인 방법으로는 사용이 불가하므로 반드시 명시해주어야 한다.

소스코드
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;

있었는데요 없었습니다

INNER JOIN을 사용할 수 있는지 묻는 문제. 기본적인 묵시적 조인은 INNER JOIN이므로 묵시적 방법을 사용해도 된다.

소스코드
1
2
3
4
5
SELECT INS.ANIMAL_ID, INS.NAME
FROM ANIMAL_INS AS INS JOIN ANIMAL_OUTS AS OUTS
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE INS.DATETIME > OUTS.DATETIME
ORDER BY INS.DATETIME;

오랜 기간 보호한 동물(1)

상위 N개의 데이터를 출력하는 방법으로 LIMIT를 사용했다.

소스코드
1
2
3
4
5
SELECT INS.NAME, INS.DATETIME
FROM ANIMAL_INS AS INS LEFT JOIN ANIMAL_OUTS AS OUTS 
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE OUTS.DATETIME IS NULL
ORDER BY INS.DATETIME LIMIT 3;

보호소에서 중성화한 동물

두 테이블에 각각 조건을 걸어 조인할 수 있는지 묻는 문제이다.

소스코드
1
2
3
4
5
6
SELECT INS.ANIMAL_ID, INS.ANIMAL_TYPE, INS.NAME
FROM ANIMAL_INS AS INS, ANIMAL_OUTS AS OUTS
WHERE INS.ANIMAL_ID = OUTS.ANIMAL_ID
    AND INS.SEX_UPON_INTAKE LIKE 'Intact%'
    AND OUTS.SEX_UPON_OUTCOME NOT LIKE 'Intact%'
ORDER BY INS.ANIMAL_ID;
This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.