честно, я не знаю, что именно ставить в названии, но здесь идет проблема:Sql Count (*) количество сопутствующих товаров на идентификатор в одном запросе
У меня есть таблица (movie_actor) со ссылкой на актеры и фильмы, с которыми они связаны. Что-то вроде:
AID | MID
AC01 | MV1
AC02 | MV1
AC01 | MV2
AC02 | MV3
AC01 | MV3
Так я придумал, как получить, например, все фильмы, относящиеся к MV1 через своих актеров через этот SQL-запрос:
SELECT movie_actor.MID
FROM movie_actor
WHERE AID
IN (SELECT AID FROM movie_actor WHERE IN MID = "MV1") AND movie_actor.MID<>"MV1"
, что приведет к:
MID: MV2, MV3
Теперь, что я действительно хочу получить, это связанные фильмы с MV1 и их соответствующим количеством связанных фильмов. В принципе:
MID | Number of Related Movies
MV2 | 2 (MV1, MV3)
MV3 | 2 (MV1, MV2)
Теперь я могу получить это используя счетчик (*) и запрос, о котором я упоминал ранее.
SELECT COUNT(*)
FROM movie_actor
WHERE AID
IN (
SELECT AID
FROM movie_actor
WHERE MID="MV2")
Но я должен сделать это по отдельности, которые я могу уйти с PHP (пробовал, медленно с большим количеством данных). Можно ли сделать это в одном запросе?
также, если я могу это сделать, будет ли он быстрее, чем противостоять его выполнению в php?
извините, если у меня есть странное форматирование, новое здесь :) также помиловать noobness