SQL 고득점 Kit 풀기 - JOIN

1. 없어진 기록 찾기

문제링크 : 없어진 기록 찾기

1.1. 문제풀이

SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_OUTS AS O
LEFT JOIN ANIMAL_INS AS I
    ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE I.ANIMAL_ID IS NULL;

1.2. 풀이

  1. LEFT JOIN(혹은 RIGHT JOIN) 을 이용해 두개의 테이블을 이용할 수 있다.

2. 있었는데요 없었습니다

문제링크 : 있었는데요 없었습니다

2.1. 문제풀이

SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_INS AS I
LEFT JOIN ANIMAL_OUTS AS O
    ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE I.DATETIME > O.DATETIME
ORDER BY I.DATETIME;

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

문제링크 : 오랜 기간 보호한 동물(1)

3.1. 문제풀이

SELECT I.NAME, I.DATETIME
FROM ANIMAL_INS AS I
LEFT JOIN ANIMAL_OUTS AS O
    ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE O.DATETIME IS NULL
ORDER BY I.DATETIME
LIMIT 3;

4. 보호소에서 중성화한 동물

문제링크 : 보호소에서 중성화한 동물

4.1. 문제풀이

SELECT I.ANIMAL_ID, I.ANIMAL_TYPE, I.NAME
FROM ANIMAL_INS AS I
LEFT JOIN ANIMAL_OUTS AS O
    ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE
    NOT (
        I.SEX_UPON_INTAKE LIKE 'Spayed%' OR
        I.SEX_UPON_INTAKE LIKE 'Neutered%'
    ) AND
    (
        O.SEX_UPON_OUTCOME LIKE 'Spayed%' OR
        O.SEX_UPON_OUTCOME LIKE 'Neutered%' 
    )
ORDER BY I.ANIMAL_ID;

댓글 남기기