gpt4 book ai didi

mysql - 如何让空类别显示在此 SQL 选择中?

转载 作者:行者123 更新时间:2023-11-30 22:15:58 24 4
gpt4 key购买 nike

这是我的选择,用于获取 Actor 凯文·布鲁姆主演的所有电影类别的列表,旁边是凯文主演的该类别电影的数量。

 SELECT category.name, count(*) as kevinCount    
FROM category
JOIN film_category ON film_category.category_id = category.category_id
JOIN film ON film.film_id = film_category.film_id
JOIN film_actor ON film_actor.film_id = film.film_id
JOIN actor ON actor.actor_id = film_actor.actor_id AND
actor.first_name="KEVIN" AND actor.last_name="BLOOM"
GROUP BY category.name;

我还希望此列表包括 Kevin 没有任何电影的所有类别。我曾尝试使用不同类型的连接语句但没有成功。谁能帮帮我?

最佳答案

left join 解决了保留所有类别的问题。您还需要计算正确的字段:

SELECT c.name, count(a.actor_id) as kevinCount    
FROM category c LEFT JOIN
film_category fc
ON fc.category_id = c.category_id LEFT JOIN
film_actor fa
ON fa.film_id = fc.film_id LEFT JOIN
actor a
ON a.actor_id = fa.actor_id AND a.first_name = 'KEVIN' AND a.last_name = 'BLOOM'
GROUP BY c.name;

注意事项:

  • 表别名使查询更易于编写和阅读。
  • 您不需要加入表 film。必要的列在 film_categoryfilm_actor 中。
  • 如果影片有多个类别,则同一文件可能会被计算多次。

关于mysql - 如何让空类别显示在此 SQL 选择中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38286736/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com