<ANIMAL_INS> 테이블
<ANIMAL_OUTS> 테이블
문제 설명
중성화 여부 표기 방식
해설 : ANIMAL_INS와 ANIMAL_OUTS 테이블을 ANIMAL_ID에 대해 JOIN해주면 한 동물이 보호소에 들어왔을 때와 입양 갔을 때의 정보를 한 레코드에 확인할 수 있게 된다. 이 JOIN된 테이블에서 보호소에 들어올 당시의 중성화 정보를 담고 있는 "SEX_UPON_INTAKE" 필드명이 Intact로 시작하면서, 보호소에서 입양 갔을 당시의 중성화 정보를 담은 "SEX_UPON_OUTCONE" 필드명이 Intact로 시작하지 않는 레코드를 추출해야 한다. 문제가 원하는 정보인 ANIMAL_ID, ANIMAL_TYPE, NAME 값을 레코드마다 추출하여 반환해주면 된다.
SELECT AI.ANIMAL_ID, AI.ANIMAL_TYPE, AI.NAME
FROM ANIMAL_INS AI JOIN ANIMAL_OUTS AO
ON (AI.ANIMAL_ID=AO.ANIMAL_ID)
WHERE (SEX_UPON_INTAKE LIKE 'Intact%')
AND (SEX_UPON_OUTCOME NOT LIKE 'Intact%');
* FROM문에서 ANIMAL_INS를 AI로, ANIMAL_OUTS를 AO로 사용할 수 있게 설정했다.
SELECT : 조회하라
AI.ANIMAL_ID, AI.ANIMAL_TYPE, AI.NAME : ANIMAL_INS 테이블에 있는 ANIMAL_ID, ANIMAL_TYPE, NAME 필드값들을
FROM ANIMAL_INS AI JOIN ANIMAL_OUTS AO : ANIMAL_INS와 ANIMAL_OUTS 를 JOIN으로 합친 테이블에서 (단, 앞으로 ANIMAL_INS 대신 AI를, ANIMAL_OUTS 대신 AO를 사용할 수 있게 한다)
ON (AI.ANIMAL_ID=AO.ANIMAL_ID) : AI 테이블의 ANIMAL_ID 필드명과 AO 테이블의 ANIMAL_ID 필드명이 같은 레코드를 기준으로
WHERE (SEX_UPON_INTAKE LIKE 'Intact%') AND WHERE (SEX_UPON_OUTCOME NOT LIKE 'Intact%') : "SEX_UPON_INTAKE" 필드 값이 "Intact" 로 시작하면서, "SEX_UPON_OUTCOME" 필드 값이 "Intact"로 시작하지 않고("Spayed" 또는 "Neutered" 로 시작하고)
'DB > SQL Problems' 카테고리의 다른 글
[SQL-JOIN, 난이도 중하] 있었는데요 없었습니다 (0) | 2020.12.07 |
---|---|
[SQL-JOIN, 난이도 중] 오랜 기간 보호한 동물(1) (0) | 2020.12.07 |
[SQL-NULL, 난이도 중] NULL 처리하기 (0) | 2020.12.04 |
[SQL-NULL, 난이도 하] 이름이 있는 동물의 아이디 (0) | 2020.12.04 |
[SQL-NULL, 난이도 하] 이름이 없는 동물의 아이디 (0) | 2020.12.04 |
댓글