Welcome! Everything is fine.

[프로그래머스/Lv.4] 보호소에서 중성화한 동물 - MySQL 본문

프로그래머스/SQL

[프로그래머스/Lv.4] 보호소에서 중성화한 동물 - MySQL

개발곰발 2024. 3. 20.
728x90

📌 문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

📌 정답

정답은 맞았지만 LIKE 대신 NOT LIKE를 사용해서 더 간결하게 적을 수 있다는 걸 알았다.

SELECT ins.ANIMAL_ID, ins.ANIMAL_TYPE, ins.NAME
FROM ANIMAL_INS ins JOIN ANIMAL_OUTS outs USING(ANIMAL_ID)
WHERE ins.SEX_UPON_INTAKE LIKE 'Intact%' 
AND (outs.SEX_UPON_OUTCOME LIKE 'Spayed%' OR outs.SEX_UPON_OUTCOME LIKE 'Neutered%')
ORDER BY ins.ANIMAL_ID;

 

이건 다른 코드인데 LIKE를 사용하지 않고 입양 전후의 중성화 여부가 다른 컬럼만 출력한다. 이게 훨씬 깔끔한 코드인 것 같다.

SELECT A.ANIMAL_ID, A.ANIMAL_TYPE, A.NAME
FROM ANIMAL_INS A 
    JOIN ANIMAL_OUTS B 
    ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.SEX_UPON_INTAKE != B.SEX_UPON_OUTCOME
ORDER BY 1;