[MySQL] 프로그래머스 문제풀이 (JOIN)

윤경·2021년 10월 15일
0

프로그래머스

목록 보기
16/16

없어진 기록 찾기

SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_OUTS OUTS LEFT JOIN ANIMAL_INS INS ON OUTS.ANIMAL_ID = INS.ANIMAL_ID
WHERE INS.ANIMAL_ID IS NULL
ORDER BY OUTS.ANIMAL_ID

JOIN: 두 테이블 합치기

문제에서 JOIN 한 후 INS 테이블에 없었던 내용들은 ID가 NULL로 들어온다.
WHEREIS NULL을 적어두면 OUTS에는 있지만 INS에는 없는 값들만 출력할 수 있다.


있었는데요 없었습니다

SELECT INS.ANIMAL_ID, INS.NAME
FROM ANIMAL_INS AS INS JOIN ANIMAL_OUTS AS OUTS
WHERE INS.ANIMAL_ID = OUTS.ANIMAL_ID AND OUTS.DATETIME <= INS.DATETIME
ORDER BY INS.DATETIME

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

📌 JOIN VS LEFT JOIN

JOIN (INNER JOIN)

: Table A와 Table B의 교집합을 조회

LEFT JOIN (LEFT OUTER JOIN)

: Table A와 Table B의 합집합을 조회

SELECT INS.NAME, INS.DATETIME
FROM ANIMAL_INS INS LEFT JOIN ANIMAL_OUTS OUTS ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE OUTS.ANIMAL_ID IS NULL
ORDER BY INS.DATETIME
LIMIT 3

profile
개발 바보 이사 중

0개의 댓글