SELECT i.animal_id
, i.animal_type
, i.name
FROM animal_ins AS i
INNER JOIN animal_outs AS o
ON i.animal_id=o.animal_id
WHERE i.sex_upon_intake LIKE '%intact%' AND (o.sex_upon_outcome LIKE '%spayed%',
o.sex_upon_outcome LIKE '%neutered%')
ORDER BY o.animal_id ASC
;
그러나,,, 에러 발생⁉️
정확한 줄 알았던, 쿼리를 눈이 빠져라 들여다보기 시작했다....👀 👀 👀
도저히 계속해서 쳐다보다간 큰 일이 날 듯 하여 저녁시간 직전에 튜터님 방문
에러문에서 'Operand' 는 연산자 라는 뜻으로, 연산자는 1개의 컬럼만 포함해야 한다는 사실을 배우게 됨!!!
AND 절에서 쉼표(,)로 이어진 두개의 컬럼으로 표현되어 에러가 발생함
따라서 쉼표(,)가 아니라 둘을 이어줄 and 나 or을 써야하는데, 해당 문제에서는 둘 중 하나인 경우도 포함이므로 or을 썼어야 한다.
최종 정답 쿼리문
SELECT i.animal_id
, i.animal_type
, i.name
FROM animal_ins AS i
INNER JOIN animal_outs AS o
ON i.animal_id=o.animal_id
WHERE i.sex_upon_intake LIKE '%intact%' AND (o.sex_upon_outcome LIKE '%spayed%' or
o.sex_upon_outcome LIKE '%neutered%')
ORDER BY o.animal_id ASC
;