#mysql #sql
Вопрос:
У меня есть эта таблица, в которой показаны записи о рейсах пассажиров, я пытаюсь получить данные о пассажирах из таблицы «пассажиры», но только для пассажиров, у которых более 5 рейсов в заданную дату.
Попробовал этот запрос для пассажиров, которые были более 5 раз в октябре, но он не работает….
SELECT * FROM passengers
WHERE pass_id IN (SELECT pass_id from flights
where f_date BETWEEN '2020-10-1' and '2020-10-31')
HAVING count(pass_id)>5;
Ответ №1:
Правильная идея, но вы упускаете GROUP BY
:
SELECT p.*
FROM passengers p
WHERE p.pass_id IN (SELECT f.pass_id
FROM flights f
WHERE f_date BETWEEN '2020-10-01' and '2020-10-31'
GROUP BY pass_id
HAVING count(*) > 5
);
Комментарии:
1. Интересно, я все еще учусь, но все же я был несколько близок, спасибо!