SQL/프로그래머스
[코딩테스트 연습- SQL] JOIN
문래동까마귀
2021. 8. 12. 18:46
1. 없어진 기록 찾기
-- RIGHT JOIN
SELECT B.ANIMAL_ID, B.NAME
FROM ANIMAL_INS A
RIGHT JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID=B.ANIMAL_ID
WHERE A.ANIMAL_ID IS NULL
ORDER BY ANIMAL_ID
-- NOT IN
SELECT ANIMAL_ID, NAME
FROM ANIMAL_OUTS
WHERE ANIMAL_ID NOT IN (SELECT ANIMAL_ID FROM ANIMAL_INS)
2. 있었는데요 없었습니다
SELECT A.ANIMAL_ID, A.NAME FROM ANIMAL_INS A, ANIMAL_OUTS B
WHERE A.ANIMAL_ID=B.ANIMAL_ID AND A.DATETIME > B.DATETIME
ORDER BY A.DATETIME
3. 오랜 기간 보호한 동물(1)
-- LEFT JOIN
SELECT INS.NAME, INS.DATETIME
FROM ANIMAL_INS INS
LEFT JOIN ANIMAL_OUTS OUTS
ON INS.ANIMAL_ID=OUTS.ANIMAL_ID
WHERE OUTS.DATETIME IS NULL
ORDER BY INS.DATETIME
LIMIT 3
-- NOT IN
SELECT NAME, DATETIME
FROM ANIMAL_INS
WHERE ANIMAL_ID NOT IN(
SELECT ANIMAL_ID
FROM ANIMAL_OUTS
)
ORDER BY DATETIME
LIMIT 3
4. 보호소에서 중성화한 동물
SELECT OUTS.ANIMAL_ID, OUTS.ANIMAL_TYPE, OUTS.NAME
FROM ANIMAL_OUTS OUTS
JOIN ANIMAL_INS INS
ON OUTS.ANIMAL_ID = INS.ANIMAL_ID
WHERE INS.SEX_UPON_INTAKE !=OUTS.SEX_UPON_OUTCOME
ORDER BY ANIMAL_ID