私は3つのテーブル:俳優、映画、およびactor_filmで作業しています。俳優と映画には、id(主キー)と名前の2つのフィールドしかありません。 Actor_filmには、actorとfilmの2つのフィールドがあり、それぞれactorとfilm idを表す外部キーです。したがって、映画に4人の俳優がいた場合、同じ映画と4人の異なる俳優を持つ4人のactor_film作品があります。SELECTはSQLiteのCOUNTと干渉します
私の問題は、映画のID、映画の名前、ある映画の俳優の数を返すことです。しかし、テーブル全体の上にあるのではなく、私はそれがある俳優がいる映画のためだけであることを望んでいます。私は
/m/0f4_l|Pulp Fiction|1 /m/0zz10|Primary Colors|1
はなく、完全な物語を取得しています
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;
:私のようなものを照会現在
、。最初の2つの列は正しいですが、私はカウントが、映画に出演した回数(明らかに1で上限を付けた回数)だけでなく、actor_filmでカウントされた映画の中の俳優の総数表。
これはネストされたSELECT
またはINNER JOIN
を必要とすると思いますが、私はSQLiteを初めて使用していて、その動作を実際に理解していません。どんな助けと説明も徹底的に評価されます。
あなたは(af.actor)をCOUNTするCOUNT(af.film)を変更することができます –
妙に同じ結果を与えます。 .. – willay