Php Sql计数(*)单个查询中每个id的相关项数
老实说,我不知道该在标题中加什么,但问题是: 我有一个表(电影演员)指的是演员和他们相关的电影。比如:Php Sql计数(*)单个查询中每个id的相关项数,php,mysql,sql,count,Php,Mysql,Sql,Count,老实说,我不知道该在标题中加什么,但问题是: 我有一个表(电影演员)指的是演员和他们相关的电影。比如: AID | MID AC01 | MV1 AC02 | MV1 AC01 | MV2 AC02 | MV3 AC01 | MV3 因此,我提出了如何通过以下sql查询通过演员获取与MV1相关的所有电影: SELECT movie_actor.MID FROM movie_actor WHERE AID IN ( SELECT AID FROM movie_actor WHERE IN MID
AID | MID
AC01 | MV1
AC02 | MV1
AC01 | MV2
AC02 | MV3
AC01 | MV3
因此,我提出了如何通过以下sql查询通过演员获取与MV1相关的所有电影:
SELECT movie_actor.MID
FROM movie_actor
WHERE AID
IN ( SELECT AID FROM movie_actor WHERE IN MID = "MV1") AND movie_actor.MID<>"MV1"
现在我真正想得到的是MV1的相关电影以及相应数量的相关电影。基本上:
MID | Number of Related Movies
MV2 | 2 (MV1, MV3)
MV3 | 2 (MV1, MV2)
现在,我可以使用count(*)和我前面提到的查询来获得它
SELECT COUNT(*)
FROM movie_actor
WHERE AID
IN (
SELECT AID
FROM movie_actor
WHERE MID="MV2")
但我必须单独这样做,我可以用php(尝试过,处理大量数据时速度较慢)来消除这一点。可以在一个查询中完成吗
另外,如果我能做到这一点,它会比用php更快吗
抱歉,如果我有奇怪的格式,新的:)
也请原谅我的无知
SELECT movie_actor.MID FROM movie_actor WHERE AID IN ( SELECT AID FROM movie_actor WHERE IN MID = "MV1") group by MID
SELECT movie_actor.MID FROM movie_actor WHERE AID IN ( SELECT AID FROM movie_actor WHERE IN MID = "MV1") group by MID