MySQL除此之外仅对特定类别0求和

时间:2016-05-08 07:27:00

标签: mysql join null sum

有一些问题已经像这样,但我还没有找到完全一样的问题。

SELECT A.first_name, A.last_name, SUM(F.length) 
FROM actors A 
LEFT JOIN film_actors FA ON A.actor_id=FA.actor_id 
LEFT JOIN film F ON FA.film_id=F.film_id 
LEFT JOIN film_category FC ON FC.film_id=F.film_id 
LEFT JOIN category C ON FC.category_id=C.category_id 
WHERE C.name="Sci-Fi" 
GROUP BY A.last_name, A.first_name;

我的问题是我只需要总结科幻小说,但我需要向所有演员报告。如果演员从未进入科幻电影,他们应该在返回的列表中,但是他们的长度为0。 WHERE正在切断那些没有科幻电影的人,这是我不知道怎么做的问题。

1 个答案:

答案 0 :(得分:1)

尝试使用CASE .... WHEN子句:

SELECT A.first_name, A.last_name,
  SUM(CASE WHEN C.name="Sci-Fi" THEN F.length ELSE 0 END) 
FROM actors A 
LEFT JOIN film_actors FA ON A.actor_id=FA.actor_id 
LEFT JOIN film F ON FA.film_id=F.film_id 
LEFT JOIN film_category FC ON FC.film_id=F.film_id 
LEFT JOIN category C ON FC.category_id=C.category_id
GROUP BY A.last_name, A.first_name;