[Programmers] SQL level3

동민·2021년 3월 11일
#없어진 기록 찾기
SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_INS I RIGHT OUTER JOIN ANIMAL_OUTS O USING(ANIMAL_ID) WHERE I.INTAKE_CONDITION IS NULL;

#있었는데요 없었습니다
SELECT I.ANIMAL_ID, I.NAME FROM ANIMAL_INS I JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID WHERE I.DATETIME > O.DATETIME ORDER BY I.DATETIME;

#오랜 기간 보호한 동물(1)
SELECT I.NAME, I.DATETIME FROM ANIMAL_INS I LEFT OUTER JOIN ANIMAL_OUTS O USING(ANIMAL_ID) WHERE O.DATETIME IS NULL ORDER BY I.DATETIME LIMIT 3;

# 오랜 기간 보호한 동물(2)
SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_OUTS O LEFT OUTER JOIN ANIMAL_INS I USING (ANIMAL_ID) WHERE I.ANIMAL_ID IS NOT NULL ORDER BY I.DATETIME - O.DATETIME DESC LIMIT 2;
# 없어진 기록 찾기 (FROM절의 RIGHT OUTER JOIN (USING or ON) 활용)
SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_INS I RIGHT OUTER JOIN ANIMAL_OUTS O USING(ANIMAL_ID) WHERE I.INTAKE_CONDITION IS NULL;
-> USING에는 ALIAS 또는 테이블 명이 들어올 수 없음. ON 절은 반드시 ALIAS 또는 테이블 명이 포함되어야 하며 '=' 를 사용하여 작성함

# 있었는데요 없었습니다. (INNER JOIN & ON)
profile
BE Developer

0개의 댓글