문제 풀이/프로그래머스

프로그래머스 - 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 [MySQL]

JJJaewon 2023. 6. 23. 15:42
반응형

 이 문제는 union 과 not in 을 이용해서 푼 문제이다. not in 이나 in 을 사용하려면 where 절에서 컬럼을 지정해야 한다는 것을 꼭 기억하자.

 

(SELECT
    CAR_ID, '대여중' AS AVAILABILITY
FROM
    CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE
    DATE(START_DATE) <= '2022-10-16'
    AND DATE(END_DATE) >= '2022-10-16')
UNION
(SELECT
    CAR_ID, '대여 가능' AS AVAILABILITY
FROM
    CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE CAR_ID NOT IN (SELECT
                    CAR_ID
                FROM
                    CAR_RENTAL_COMPANY_RENTAL_HISTORY
                WHERE
                    DATE(START_DATE) <= '2022-10-16'
                    AND DATE(END_DATE) >= '2022-10-16'))
ORDER BY
    CAR_ID DESC;
반응형