gpt4 book ai didi

mysql - SQL - 查找每个 Actor 的名字、姓氏和科幻电影的总长度

转载 作者:太空宇宙 更新时间:2023-11-03 11:42:47 25 4
gpt4 key购买 nike

我有一个查询可以完成此操作,但它排除了从未出演过科幻电影的 Actor 。我想包括那些 Actor ,即使他们的科幻电影总长度为零。

结果应该列出所有 Actor 的名字(即使 Actor 没有出演过任何科幻电影)以及他们出演过的科幻电影的总时长。

我有以下查询,我只是不知道如何修改它以包含所有 Actor 。

SELECT actor.first_name, actor.last_name, SUM(film.length)
FROM actor
INNER JOIN film_actor ON actor.actor_id = film_actor.actor_id
INNER JOIN film on film_actor.film_id = film.film_id
INNER JOIN film_category ON film_actor.film_id = film_category.film_id
INNER JOIN category ON film_category.category_id = category.category_id
WHERE category.name = 'Sci-Fi'
GROUP BY category.name, actor.actor_id
ORDER BY actor.first_name

我正在使用以下架构:

最佳答案

除了切换到外部联接之外,您还可以使用条件聚合(也可以轻松扩展以包含其他类别):

SELECT actor.first_name, actor.last_name,
SUM(case when category.name = 'Sci-Fi' then film.length else 0 end)
FROM actor
INNER JOIN film_actor ON actor.actor_id = film_actor.actor_id
INNER JOIN film on film_actor.film_id = film.film_id
INNER JOIN film_category ON film_actor.film_id = film_category.film_id
INNER JOIN category ON film_category.category_id = category.category_id
GROUP BY category.name, actor.actor_id
ORDER BY actor.first_name

这将排除从未拍过电影的 Actor 。

关于mysql - SQL - 查找每个 Actor 的名字、姓氏和科幻电影的总长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40563985/

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