프로그래머스 오랜 기간 보호한 동물(1)(MySQL, NOT IN, LEFT JOIN)

박진우·2022년 11월 12일
0

SQL

목록 보기
19/23

💡프로그래머스 오랜 기간 보호한 동물(1)

◽ 문제




◽ EX)





◽ 풀이

아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리 이름

보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다.

  • 1번째 줄: 이름 보호 시작일을 INS테이블에서 가져온다. 별칭은 I로하고, JOIN기준테이블로 지정한다.
  • 2번째 줄: JOIN 대상 테이블은 OUTS테이블로 지정하고, 별칭은 O로 지정했다.
  • 3번째 줄: ON조건절은 ID로 지정

  • 4번째 줄: WHERE절에서 기준 테이블인 INS 즉 LEFT JOIN을 했으니깐 보호소에 들어온 동물(INS)다 가져오고, 입양 보낸 동물(OUTS)에는 ANIMAL_ID가 있는

    두 개의 테이블에 있다는 의미 ➡️ 보호소에 들어오고나서 입양을 보낸 동물이라는 뜻이기 때문에 WHERE절에서 OUTS테이블의 ANIMAL_ID가 NULL이라는 의미는 보호소에 들어왔지만 입양을 못간 동물이라는 뜻이다.

  • 7번째 줄: 보호 시작일 순으로 3개만 출력한다.




✅ 다른 풀이

◽ NOT IN

  • 2번째 줄: 위의 코드와 비슷하지만 JOIN을 사용하지 않고, WHERE절에서 INS테이블의 ANIMAL_ID가 OUTS에 NOT IN하는 조건을 가져온다.

0개의 댓글