SELECT ao.ANIMAL_ID, ao.NAME
FROM ANIMAL_OUTS ao
LEFT JOIN ANIMAL_INS ai ON ai.ANIMAL_ID=ao.ANIMAL_ID
WHERE ai.ANIMAL_ID IS NULL;
추가 설명 : ai.ANIMAL_ID가 NULL 일 경우에만 출력 해야 함.
SELECT ai.ANIMAL_ID, ai.NAME
FROM ANIMAL_INS ai
LEFT JOIN ANIMAL_OUTS ao
ON ai.ANIMAL_ID=ao.ANIMAL_ID
WHERE ai.DATETIME>ao.DATETIME
ORDER BY ai.DATETIME
SELECT ai.NAME, ai.DATETIME
FROM ANIMAL_INS ai
LEFT JOIN ANIMAL_OUTS ao
ON ai.ANIMAL_ID=ao.ANIMAL_ID
WHERE ao.DATETIME IS NULL
ORDER BY ai.DATETIME
LIMIT 3
-- 코드를 입력하세요
-- 보호소에 들어올 당시는 중성화 되지 않음 IN -> Intact
-- 보호소에 나갈 당시에는 중성화 됨 OUTS-> Spayed 또는 Neutered
SELECT ai.ANIMAL_ID,ai.ANIMAL_TYPE,ai.NAME
FROM ANIMAL_INS ai
LEFT JOIN ANIMAL_OUTS ao
ON ai.ANIMAL_ID=ao.ANIMAL_ID
WHERE ai.SEX_UPON_INTAKE LIKE 'Intact %'
# 3. IN은 와일드카드를 사용할 없기 때문에 SELECT 절을 이용해 찾기
# 방법 1. AND ao.SEX_UPON_OUTCOME NOT LIKE 'Intact %'
# 방법 2. IN 안에 서브쿼리를 넣어서 실행
# AND ao.SEX_UPON_OUTCOME IN (SELECT SEX_UPON_OUTCOME FROM ANIMAL_OUTS WHERE SEX_UPON_OUTCOME LIKE 'Spayed%' OR SEX_UPON_OUTCOME LIKE 'Neutered%')
# 방법 3. IN 안에 값을 다 넣어서 비교
# AND AO.SEX_UPON_OUTCOME IN ('Spayed Female','Spayed Male','Neutered Male','Neutered Female')
# 방법 4. OR을 사용하기
AND (AO.SEX_UPON_OUTCOME LIKE 'Spayed%' OR AO.SEX_UPON_OUTCOME LIKE 'Neutered%')
ORDER BY ai.ANIMAL_ID