41번. 조건에 맞는 도서 리스트 출력
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
✍️ 최초 작성했던 쿼리문
SELECT book_id
, date_format(published_date, '%Y-%m-%d') AS PUBLISHED_DATE
FROM book
WHERE published_date (BETWEEN '2021-01-01' AND '2021-12-31')
AND category IN '인문'
ORDER BY published_date ASC
;
-- 에러 발생 --

도저히 해결이 안돼서, `GPT 선생님`한테 작성한 쿼리문 검토 받았지 :D
쿼리를 보니 오류가 나는 이유가 몇 가지 있어요 🙂
문제점⁉️
- WHERE published_date (BETWEEN ...) → 괄호 잘못 사용
- BETWEEN은 함수처럼 쓰지 않고 컬럼 BETWEEN 값1 AND 값2 형태여야 합니다.
- 즉, published_date (BETWEEN ...)는 문법 오류예요.
- category IN '인문' → IN 사용법 잘못됨
- IN은 여러 개의 값 목록에 대해 비교할 때 사용합니다. (예: category IN ('인문','과학'))
- 값이 하나라면 그냥 =를 쓰면 됩니다.
어제도 비슷하게 WHERE 절에서 연결구( 쉼표, and/or 등)의 오류 문제가 있었다.
🔥 이로써 나의 약점 발견 🔥
📌 WHERE 절에서 틀린 것이 없는지 항상 주의깊게 살펴 볼 것
- 특히나 괄호() 쉼표',' and/or의 사용
✍️ 문제 해결 후 정답 쿼리문
SELECT book_id
, date_format(published_date, '%Y-%m-%d') AS PUBLISHED_DATE
FROM book
WHERE published_date BETWEEN '2021-01-01' AND '2021-12-31'
AND category = '인문'
ORDER BY published_date ASC
;
'SQL' 카테고리의 다른 글
| [SQL] 프로그래머스 53번 : 재구매가 일어난 상품과 회원 리스트 구하기 (GROUP BY) (2) | 2025.08.29 |
|---|---|
| [SQL] 프로그래머스 48번 : 즐겨찾기가 가장 많은 식당 정보 출력하기(GROUP BY | 중첩 SUB QUERY | 튜플 | JOIN | WITH 문) (2) | 2025.08.26 |
| [SQL/코드카타] 프로그래머스 36번 - 보호소에서 중성화한 동물(연산자 오류) (0) | 2025.08.21 |