[SQL] 보호소에서 중성화한 동물

이말감·2022년 2월 3일
0

SQL

목록 보기
11/14

문제

링크

코드

SELECT I.ANIMAL_ID, I.ANIMAL_TYPE, I.NAME
FROM ANIMAL_INS I
JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE I.SEX_UPON_INTAKE LIKE '%Intact%' AND O.SEX_UPON_OUTCOME NOT LIKE '%Intact%'
ORDER BY I.ANIMAL_ID;

풀이

  • 문제 정리
  1. 중성화 X : INTACT, 중성화 O : SPAYED, NEUTERED
  2. 보호소 들어올 당시 중성화 x : INS 테이블의 SEX_UPON_INTAKE이 INTACT
  3. 보호소를 나갈 당시 중성화 O : OUTS 테이블의 SET_UPON_OUTCOME이 INTACT가 아님
  4. SEX_UPON~ 데이터가 중성화 여부와 성별이 함께 있기 때문에 LIKE 사용
    4_1. 해당 문자가 없는 데이터만 출력하려면 NOT LIKE 사용

WHERE 부분을 아래처럼 나타낸 것을 봤다.

WHERE I.SEX_UPON_INTAKE != O.SEX_UPON_OUTCOME

어차피 들어왔을 때 중성화 X, 나갈 때 중성화 O이기 때문에 서로 값만 다르면 된다는 거 같은데
궁금한 점은 INTACT MALE이랑 INTACT FEMALE은 같은 건가?? 헷갈려서 난 그냥 LIKE을 써야겠다...

profile
전 척척학사지만 말하는 감자에요

0개의 댓글