老实说,我不知道究竟要放在标题中的内容,但问题出现了:
我有桌子(movie_actor)指的是与他们有关的演员和电影。类似的东西:
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"
会导致:
MID: MV2, MV3
现在我真正希望得到的是与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中这样做吗?
抱歉,如果我有奇怪的格式,这里新的:) 还原谅了高通
答案 0 :(得分:0)
SELECT movie_actor.MID FROM movie_actor WHERE AID IN ( SELECT AID FROM movie_actor WHERE IN MID = "MV1") group by MID