본문 바로가기
Language/DB

[Programmers | SQL | JOIN 문제 풀이] 보호소에서 중성화한 동물 - Solution with LIKE '~%'

by ㅇ달빛천사ㅇ 2024. 7. 2.
728x90

KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기 | SQL CODEKATA

🫥 보호소에서 중성화한 동물

🏷 관련 주제 : JOIN LIKE




✔️ (Oracle & MySQL) Solution with LIKE '~%'

SELECT I.ANIMAL_ID
       , I.ANIMAL_TYPE
       , I.NAME
FROM ANIMAL_INS I
     , ANIMAL_OUTS O
WHERE I.ANIMAL_ID = O.ANIMAL_ID
      AND (I.SEX_UPON_INTAKE NOT LIKE 'Spayed%'
           AND I.SEX_UPON_INTAKE NOT LIKE 'Neutered%')
      AND (O.SEX_UPON_OUTCOME LIKE 'Spayed%'
           OR O.SEX_UPON_OUTCOME LIKE 'Neutered%')
ORDER BY I.ANIMAL_ID;
실행 결과

💥 오늘 만난 문제 & 나의 시도 💦 & 해결 방법 👍

📌 오늘 만난 문제 : 보호소에 들어올 당시에는 중성화되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물아이디생물 종, 이름아이디 으로 조회하는 SQL 문을 작성해주세요.


1. ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블을 ANIMAL_IDJOIN하여 아이디, 생물 종, 이름, SEX_UPON_INTAKE, SEX_UPON_OUTCOME을 조회하자.

  • Oracle & MySQL
    SELECT I.ANIMAL_ID
           , I.ANIMAL_TYPE
           , I.NAME
           , I.SEX_UPON_INTAKE
           , O.SEX_UPON_OUTCOME
    FROM ANIMAL_INS I
         , ANIMAL_OUTS O
    WHERE I.ANIMAL_ID = O.ANIMAL_ID;
    실행 결과

2. 보호소에 들어올 당시에는 중성화되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물아이디생물 종, 이름, SEX_UPON_INTAKE,SEX_UPON_OUTCOME을 조회하자.

성별 및 중성화 여부(SEX_UPON_INTAKE, SEX_UPON_OUTCOME)
중성화를 거치지 않은 동물
: Intact,
중성화를 거친 동물: Spayed 또는 Neutered
라고 표시되어있습니다.

  • Oracle & MySQL
    SELECT I.ANIMAL_ID
           , I.ANIMAL_TYPE
           , I.NAME
           , I.SEX_UPON_INTAKE
           , O.SEX_UPON_OUTCOME
    FROM ANIMAL_INS I
         , ANIMAL_OUTS O
    WHERE I.ANIMAL_ID = O.ANIMAL_ID
          AND I.SEX_UPON_INTAKE LIKE 'Intact%'
          AND (O.SEX_UPON_OUTCOME LIKE 'Spayed%'
               OR O.SEX_UPON_OUTCOME LIKE 'Neutered%');
    실행 결과

3. 위의 조회 결과에서 동물의 아이디생물 종, 이름만 조회하고 아이디오름차순 정렬하자

  • Oracle & MySQL
    SELECT I.ANIMAL_ID
           , I.ANIMAL_TYPE
           , I.NAME
    FROM ANIMAL_INS I
         , ANIMAL_OUTS O
    WHERE I.ANIMAL_ID = O.ANIMAL_ID
          AND I.SEX_UPON_INTAKE LIKE 'Intact%'
          AND (O.SEX_UPON_OUTCOME LIKE 'Spayed%'
               OR O.SEX_UPON_OUTCOME LIKE 'Neutered%')
    ORDER BY 1;
    실행 결과


💬 무엇을 새롭게 알았는지

JOIN 쿼리를 작성해 보았다.
LIKE 키워드를 사용해 보았다.
WHERE절ANDOR을 이용하여 조건을 여러개 주는 쿼리를 작성해 보았다.





728x90