2017-08-15 13 views
-3
SELECT film_id, film_actor.actor_id,first_name,last_name,COUNT(*) 
FROM film_actor 
INNER JOIN actor ON film_actor.actor_id=actor.actor_id 
GROUP BY film_actor.actor_id ; 
+0

ようになることfilm_idは、GROUP BY句に現れなければならないと言ってみましたか? – Milk

答えて

0
SELECT 
    film_id,?  ---(Which table ? you can neglect) 
    film_actor.actor_id, 
    first_name, 
    last_name, 
    COUNT(*) AS Total 
FROM film_actor 
INNER JOIN actor 
ON film_actor.actor_id =actor.actor_id 
GROUP BY film_actor.actor_id ; 

は、このSQL文のベストプラクティスが

SELECT 
    c.film_id, 
    a.actor_id, 
    b.first_name, 
    b.last_name 
    a.Count 
FROM 
    (
     SELECT 
      film_actor.actor_id, 
      COUNT(*) AS Count 
     FROM film_actor 
     INNER JOIN actor 
     ON film_actor.actor_id =actor.actor_id 
     GROUP BY film_actor.actor_id ; 
    ) AS a 
INNER JOIN actor b ON b.actor_id = a.actor_id 
INNER JOIN film_actor c ON c.actor_id = a.actor_id 
+0

テーブルスキーマを記述すると、詳細SQL文を与えることができます –

関連する問題