Столкнулся с проблемой вложенности запроса. Имеются три таблицы:
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
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости