SQL 문제 - 오랜 기간 보호한 동물

2022. 4. 29. 14:04·코딩테스트/프로그래머스
반응형

문제의 링크는 아래와 같습니다.

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

 

코딩테스트 연습 - 오랜 기간 보호한 동물(1)

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

문제 분류가 join이라 먼저 join을 사용했다.

 

첫 번째 정답 코드입니다. left join을 사용했다.

left join으로 일단 ANIMAL_OUTS 테이블에 없는 데이터도 다 조인한 후에,

outs.ANIMAL_ID가 없는 것을 리턴하면 입양을 가지 못한 동물들만 거를 수 있다.

select ins.NAME, ins.DATETIME from ANIMAL_INS as ins 
left join ANIMAL_OUTs as outs on ins.ANIMAL_ID = outs.ANIMAL_ID
where outs.ANIMAL_ID is NULL
order by ins.DATETIME limit 3

2 번째 정답 코드입니다. 서브 쿼리와 not in을 사용했습니다.

모든 ANIMAL_OUTS의 ANIMAL_ID 데이터 집합을 가져오고, 그 안에 ANIMAL_INS.ANIMAL_ID가 없다면 select 한다.

select NAME, DATETIME from ANIMAL_INS 
where ANIMAL_ID not in (select ANIMAL_ID from ANIMAL_OUTS )
order by DATETIME limit 3

 

기억할 것

  • in 안에 오는 select문은 단일 컬럼을 리턴해야 한다. 이것 때문에 조금 헤맸다.
  • in 에서는 오른쪽에 집합을 지정. 왼쪽에 지정된 값과 같은 값이 집합 안에 존재하면 참을 반환한다.
반응형
'코딩테스트/프로그래머스' 카테고리의 다른 글
  • SQL 문제 - 중성화 여부 파악하기 (IF, REGEXP, CASE)
  • SQL 문제 - 동명 동물 수 찾기 (GROUP BY, HAVING)
  • SQL 문제 - 이름에 el이 들어가는 동물 찾기
  • SQL 문제 - 고양이와 개는 몇 마리 있을까
Debin
Debin
공부 기록을 남기며 게시글 리팩토링을 진행하는 블로그입니다.
  • Debin
    리팩토링하는 블로그
    Debin
  • 전체
    오늘
    어제
    • 분류 전체보기
      • DB
        • DB 기초
        • MySQL
        • SQL 튜닝
      • OS
      • Network
      • Git
      • 디지털콘텐츠기획
      • 소프트웨어공학
      • 코딩테스트
        • 프로그래머스
        • 백준
        • 인프런
      • 공부 일지
      • 독서
        • 클린코드
        • 일상 속 사물이 알려주는 웹 API 디자인
        • 토비의 스프링
        • 객체지향의 사실과 오해
        • 자바 잘 읽는 법
      • 기록 및 회고
      • Cloud
        • AWS
      • 개발
        • Java
        • Spring Core
        • Spring MVC
        • Spring DB
        • Spring Boot
        • Spring Security
        • Spring Batch
        • JPA
        • Test
        • Android
      • 대외활동
        • UMC SERVER
        • 카엔프 SW 아카데미
      • 프로젝트
      • Docker
      • Gradle
      • ELK
      • 실무 이야기
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

    • 본인 깃허브입니다!
  • 인기 글

  • 태그

    AWS
    객체지향
    스프링 부트
    AOP
    스프링
    트랜잭션
    spring mvc
    자바
    컨테이너
    SQL
    innodb
    리눅스
    데이터베이스
    토비의 스프링
    spring boot
    코딩 #개발자 #노마드북클럽 #노개북
    도커
    인덱스
    ORM
    docker
    container
    redis
    JPA
    test
    프록시
    객체
    mysql
    spring
    Java
    운영체제
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
Debin
SQL 문제 - 오랜 기간 보호한 동물
상단으로

티스토리툴바