我正在處理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