문제
CAR_RENTAL_COMPANY_CAR
테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY
테이블에서 자동차 종류가 '세단'인 자동차들 중 10월에 대여를 시작한 기록이 있는 자동차 ID 리스트를 출력하는 SQL문을 작성해주세요. 자동차 ID 리스트는 중복이 없어야 하며, 자동차 ID를 기준으로 내림차순 정렬해주세요.
📍 조건
sql 코드
SELECT distinct(car.car_id)
FROM car_rental_company_rental_history as history join
(SELECT car_id
FROM car_rental_company_car
WHERE car_type = "세단") as car
on history.car_id = car.car_id
WHERE month(start_date) = 10
ORDER BY car.car_id desc
SELECT car_id
FROM car_rental_company_car
WHERE car_type = "세단"
WHERE month(start_date) = 10
SELECT distinct(car.car_id)
ORDER BY car.car_id desc
출처 : se님 MySQL 정답공유
SELECT c.CAR_ID
FROM CAR_RENTAL_COMPANY_CAR c, CAR_RENTAL_COMPANY_RENTAL_HISTORY h
WHERE c.CAR_ID = h.CAR_ID AND c.CAR_TYPE='세단' AND MONTH(h.start_date) = 10
GROUP BY c.CAR_ID
ORDER BY c.CAR_ID DESC
join을 직접적으로 사용하지 않고 자동차 ID가 같은 것들로 조회 후, 자동차 타입, 10월 대여 기록을 가져온다. 그리고 group by 로 묶어주면 중복 제거 하지 않고 자동차 ID를 가져올 수 있다.
join만 생각하고 풀었는데 이렇게도 해결할 수 있다는걸 알게되서 첨부.