Столкнулся с проблемой вложенности запроса. Имеются три таблицы:
actors (id, name)
- таблица актеров с именами.actors_video (id, id_actor, id_video)
- таблица с данными о участии актера в фильме.video (id, name)
- таблица с фильмами.таблицы actors
и actors_video
- залиты полностью, а в таблицу video
постепенно публикуются материалы.
У меня имеется страница актеров, где выводятся все актеры (с таблицы actors
). Но есть нюанс, когда актер выводится, а фильмов у него нет.
Поэтому вопрос, как сделать запрос когда выводятся все актеры, у которых есть минимум 5 фильмов?
В вашем случае между таблицами есть связи по внешним ключам и не составляет труда их сджойнить без подзапросов вовсе. И отсортировать результат
select act.id
from actors act
join actors_video a_vid on vid.id_actor = act.id
join video vid on vid.id = a_vid.id_video
group by act.id
having count(vid.id) >= 5;
знакомы ли вы с группировкой GROUP BY
фильтрацией групп HAVING
и функциями а-ля COUNT
?
SELECT a.id, a.name
FROM actors AS a
INNER JOIN actors_video as av ON (av.id_actor = a.id)
GROUP by a.id, a.name
HAVING count(av.id_video) >= 5
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Пишу парсер для сайта https://kladr-rfru/ 1) нужно получить все города со всех регионов и улицы со всех городов, данные о городах и улицах спарсил 2) далее...
возникла такая проблемаДвижок: ocStore 2