[SQL/코드카타] 프로그래머스 41번 - 조건에 맞는 도서 리스트 출력 | BETWEEN | AND

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

쿼리를 보니 오류가 나는 이유가 몇 가지 있어요 🙂

문제점⁉️

  1. WHERE published_date (BETWEEN ...) → 괄호 잘못 사용
    • BETWEEN은 함수처럼 쓰지 않고 컬럼 BETWEEN 값1 AND 값2 형태여야 합니다.
    • 즉, published_date (BETWEEN ...)는 문법 오류예요.
  2. 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
;