DLife Planet

[쿼리 공부] 상급 4 보호소에서 중성화한 동물(공식 JOIN 2, Like 연산) 본문

카테고리 없음

[쿼리 공부] 상급 4 보호소에서 중성화한 동물(공식 JOIN 2, Like 연산)

Western_Gem 2020. 11. 19. 13:18
반응형

JOIN이 들어간 예제 공식적으로 두 번째입니다.


출처 - 프로그래머스

보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다. 보호소에 들어올 당시에는 중성화 1 되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL 문을 작성해주세요.

[해설]

간단해요. 'Intact'가 비 중성화 군이기 때문에 ins에서 I가 들어간 값 중에 outs와 값이 다른 값을 출력하면 됩니다.

Like 연산의 경우 varchar값에서 특정 문자열을 와일드카드 %를 써서 추적하는 코드입니다.

앞뒤에 쓰면 해당 문자가 들어간걸 찾으면 되구요.

뒤에 쓰면 해당 문자 뒤, 앞에 쓰면 앞 (가급적 뒤에만 써서 처리하라고 하네요. 퀵소트 버블소트 개념으로 보여요.)


[정답]

(Oracle/Mysql) 모범답안

SELECT i.animal_id, i.animal_type, i.name 
from animal_ins i inner join animal_outs o 
on i.animal_id = o.animal_id
where i.SEX_UPON_INTAKE != o.SEX_UPON_OUTCOME
and i.SEX_UPON_INTAKE like 'I%'
order by i.animal_id;

 


where 절을 잘 보시면 이해가 될 겁니다. 이해가 되리라 믿습니다.

반응형
Comments