我正在处理3个表格:actors,films和actor_film。演员和电影只有2个字段:id(主键)和名字。 Actor_film也有两个字段,演员和电影,这两个字段分别代表演员和电影ID。所以如果一部电影里面有4个演员,就会有4部actor_film条目和4部不同的演员。SELECT干扰COUNT中的SQLite
我的问题是,我想返回电影ID,电影名称和某个电影中演员的数量。但是,我不想把它放在整个桌子上,而只是希望它只适用于其中有某个演员的电影。
目前,当我查询是这样的:
SELECT af.film, f.name, COUNT(af.film) FROM film AS f, actor_film AS af WHERE af.actor = "/m/0f502" AND af.film = f.id GROUP BY af.film;
我越来越
/m/0f4_l|Pulp Fiction|1 /m/0zz10|Primary Colors|1
其中75%是正确的,但不是完整的故事。前两列是正确的,但我希望计数不仅仅是演员出现在电影中的次数(显然限制在1),但是这些电影中演员的总数(以actor_film计)表。
我认为这需要一个嵌套的SELECT
或INNER JOIN
,但我是SQLite的新手,并不真正了解它是如何工作的。任何帮助和解释将得到彻底赞赏。
你能不能改变COUNT(af.film)以计数(af.actor) –
这奇怪的结果相同。 .. – willay