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_ID
로 JOIN하여 아이디
, 생물 종
, 이름
, 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절에 AND와 OR을 이용하여 조건을 여러개 주는 쿼리를 작성해 보았다.
728x90