我有几个包含电影,演员和类别数据的相关表格。我试图将每部演员的电影长度总结在一个特定的类别中。SQL:选择一个子查询的总和
这就是我要尝试,包括一个类别ID子查询的在我的结果的总和:
SELECT actor.actor_id, (SELECT SUM(length) from film WHERE category_id=14) total
FROM actor
JOIN film_actor USING(actor_id)
JOIN film USING(film_id)
JOIN film_category USING(film_id)
JOIN category USING(category_id)
GROUP BY actor.actor_id
ORDER BY total DESC
但是我total
列只包含所有空值。
此查询的工作,但不包括谁有0分钟的有价值的这一类电影的演员:在类别中属于对外部连接的条款
SELECT actor.actor_id, SUM(film.length) as total
FROM actor
JOIN film_actor USING(actor_id)
JOIN film USING(film_id)
JOIN film_category USING(film_id)
JOIN category USING(category_id)
WHERE category_id = 14
GROUP BY actor.actor_id
尝试改变你的使用语句到左连接,这就是为什么它不会包括与0连接。只是说明“连接”是内部连接。 – Reisclef