2016-05-03 5 views
1

私は3つのテーブルを持っています:映画、俳優、関係actors_filmです。PostgreSQLで関係するIDの数をカウントし、名前に接続します

私は、最も多くの映画に出演している俳優を決定しようとしています。俳優が映画の中にいた場合、これはactor_id(主キー)と表示されます。

は、私は、各 film_idのためのテーブル film_actorに回ずつ actor_idショーの数をカウントし、右名( actor.first_name)でこれを接続したい考え出しました。

私は最初の部分を持っていますが、カウント値を正しい名前に接続できないようです。

SELECT actor_id, COUNT(*) AS number_of_films 
FROM film_actor 
GROUP by actor_id 
ORDER by 2 
DESC limit 1; 

アクターテーブルからアクター名をどのように接続するのですか?あなたは、単純なインナーがテーブルactorsとテーブルactors_film間の結合を必要とする

WHERE actor.actor_id = film_actor.actor_id. 

答えて

0

SELECT a.actor_name, a.actor_id, COUNT(*) 
    FROM actors a INNER JOIN actors_films af 
     ON a.actor_id = af.actor_id 
GROUP BY a.actor_name, a.actor_id 
ORDER BY 3; 
+0

編集し、おかげで私は考えている

は、私はいくつかのフォームが必要です。 –

+0

これで、同じ名前(しかし異なる 'actor_id')を持つアクターは同じものとして数えられるという問題があります。あなたは 'group by'で両方とも必要です –

+0

これは素晴らしいです、ありがとう!参加についての章で詳しくお試しください。しかし、これは大きな助けになりました、もう一度ありがとう! –

関連する問題