我是SQL查询的新手,我正在处理一个查询以打印演员出现的电影COUNT
,如果他们没有出现在任何电影中,总共包括0
。SQL查询不会在UNION上打印0
我收到所有预期结果,除非演员没有出现在任何电影中,那么他们不会出现在列表中。
这里是我迄今为止 -
SELECT a.actor_name, count(*)
FROM ACTOR a
JOIN CAST_MEMBER c ON (a.actor_name = c.actor_name)
GROUP BY a.actor_name
UNION
SELECT c2.actor_name, 0
FROM ACTOR a2 JOIN CAST_MEMBER c2 ON (a2.actor_name = c2.actor_name)
WHERE a2.actor_name NOT IN
(
SELECT a3.actor_name
FROM ACTOR a3
JOIN CAST_MEMBER c3 ON (a3.actor_name = c3.actor_name)
)
EXPECTED OUTPUT
ACTOR_NAME COUNT(*)
-------------------------------------------------- ----------
Amy Adams 1
Brad Pitt 4
Christian Bale 1
Jennifer Anitson 0
Jennifer Lawrence 2
Leonardo DiCaprio 2
OUTPUT I HAVE
ACTOR_NAME COUNT(*)
-------------------------------------------------- ----------
Amy Adams 1
Brad Pitt 4
Christian Bale 1
Jennifer Lawrence 2
Leonardo DiCaprio 2
我真的很感激,如果有人可以指导我在正确的方向。
谢谢你的帮助。
你能给一个sqlfiddle吗? – 2014-10-30 16:38:39
@Leandro是那个sqlfiddle?还是新的,所以不知道这是否是你要求的。 – Maddy 2014-10-30 16:40:16
here:http://sqlfiddle.com/ 所以你/我们可以尝试一个解决方案 – 2014-10-30 16:41:03