행궁동 데이터 엔지니어

반응형

프로그래머스 SQL 문제 중 JOIN 카테고리에 속한 문제를 풀어봤습니다.

2가지 방법으로 풀어봤고 첫 번째 풀이는 LEFT JOIN을 사용, 두 번째는 JOIN을 사용하지 않고 NOT IN() 연산자를 사용했습니다.

 

주요 사용 연산자와 함수 : LEFT JOIN, IS NULL, NOT IN()

 

NOT IN() 연산자를 포함한 비교 연산자(comparision operator) 몇 가지 정리

  • IS : 왼쪽 피연산자와 오른쪽 피연산자가 같으면 참을 반환(오른쪽 피연산자가 BOOLEAN 값인 TRUE, FALE, UNKNOWN 값을 때 사용)
  • IS NOT : 왼쪽 피연산자와 오른쪽 피연산자가 같지 않으면 참을 반환
  • BETWEEN MIN AND MAX : 피연산자의 값이 MIN 값보다 크거나 같고, MAX 값보다 작거나 같으면 참을 반환
  • NOT BETWEEN MIN AND MAX : 피연산자의 값이 MIN 보다 작고, MAX 값도가 크면 참을 반환
  • IN() : 피연산자의 값이 인수로 전달받은 리스트에 존재하면 참을 반환
  • NOT IN() : 피연산자의 값이 인수로 전달받은 리스트에 존재하지 않으면 참을 반환

참고 : TCP School, 비교 연산자, http://tcpschool.com/mysql/mysql_operator_comparison

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는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALS

programmers.co.kr

전체 쿼리문은 아래에 첨부합니다.

 

풀이 1 : LEFT JOIN 사용

풀이 2 : NOT IN() 연산자 사용

 

반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band