[프로그래머스] 오랜 기간 보호한 동물(1) - JOIN

문제링크 🚩

https://school.programmers.co.kr/learn/courses/30/lessons/59044

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

📕 문제 접근 📕

LEFT JOIN, RIGHT JOIN

  • 조인 사용 후 NULL 값만을 가져오고 3개만 출력한다.

LEFT JOIN

  • 왼쪽(기준) 테이블의 모든 레코드를 포함하면서 오른쪽 테이블과 일치하는 레코드를 가져옵니다. 오른쪽 테이블에 일치하는 레코드가 없는 경우에도 왼쪽 테이블의 레코드는 결과에 포함됩니다. 이는 오른쪽 테이블의 데이터가 부족한 경우에도 왼쪽 테이블의 정보를 보존하면서 조인할 때 사용됩니다.
SELECT *
FROM 왼쪽_테이블
LEFT JOIN 오른쪽_테이블
ON 조인_조건;

RIGHT JOIN:

RIGHT JOIN은 RIGHT JOIN은 LEFT JOIN의 반대 개념으로, 오른쪽(기준) 테이블의 모든 레코드를 포함하면서 왼쪽 테이블과 일치하는 레코드를 가져옵니다. 왼쪽 테이블에 일치하는 레코드가 없는 경우에도 오른쪽 테이블의 레코드는 결과에 포함됩니다. 이는 왼쪽 테이블의 데이터가 부족한 경우에도 오른쪽 테이블의 정보를 보존하면서 조인할 때 사용됩니다.

SELECT *
FROM 왼쪽_테이블
RIGHT JOIN 오른쪽_테이블
ON 조인_조건;

💻 Code 💻

-- ANIMAL_INS 들어온 애들 ANIMAL_OUTS나간애들 
-- 입양 못 간 친구들 중에 가장 오래 있었던 친구들 출력하는데 3명만 

SELECT ANIMAL_INS.NAME, ANIMAL_INS.DATETIME
FROM ANIMAL_OUTS
RIGHT JOIN ANIMAL_INS 
ON ANIMAL_INS.ANIMAL_ID = ANIMAL_OUTS.ANIMAL_ID  -- 나간애들 기준으로 아이디를 출력 만약에 들어왔는데 안나갔으면 널로 출력이 된다.
WHERE ANIMAL_OUTS.ANIMAL_ID IS NULL  -- ANIMAL_OUTS 기준으로 널로 표시된 애들만 불러오겠다 
ORDER BY  ANIMAL_INS.DATETIME
LIMIT 3;