SQL Select语句没有给出预期的结果?

时间:2013-10-11 15:01:38

标签: sql sql-server sql-server-2008

我正在尝试编写一个精选语句来展示所有Sci-Fi相关类型中的前10名演员。相反,我将获得前十名演员和他们所拥有的所有头衔,而不仅仅是科幻(这就是我想要的)。

select top 10 people_name as actor_name, count(tg_genre_name) as number_of_titles
from nf_people
    join nf_cast on people_id=cast_people_id
    join nf_titles on cast_title_id=title_id
    join nf_title_genres on title_id=tg_title_id
where tg_genre_name like '%Sci-Fi%'
group by people_name
order by number_of_titles desc

2 个答案:

答案 0 :(得分:0)

SELECT TOP 10 M.actor_name,  count(*) as number_of_titles FROM
(
  SELECT people_name AS actor_name
  FROM nf_people
       JOIN nf_cast ON people_id=cast_people_id
       JOIN nf_titles ON cast_title_id=title_id
       JOIN nf_title_genres ON title_id=tg_title_id
  WHERE tg_genre_name LIKE '%Sci-Fi%'
) AS M
GROUP BY M.actor_name
ORDER BY count(*) DESC

答案 1 :(得分:-1)

尝试将WHERE替换为HAVING

使用WHERE,它会选择所有可能拥有Sci-Fi的作者。 HAVING会根据您的需要限制查询。