链接2个表并按降序输出结果,然后按字母顺序排列

时间:2016-09-06 03:05:29

标签: database sqlite inner-join

我有一张名为摔跤手的桌子

id, wrestler_name,age
1,Tom,24
2,Fred,19
3,Michael, 28

我有一个名为审稿人的表

reviewer, id,score
1,1,3
1,2,3
2,3,4

每个评论者都有一个与摔跤手表中摔跤手的id相对应的数字,他们为每个摔跤手打分。

我正在努力寻找至少有200条评论的摔跤手。然后,我想按照评论计数(从高到低)对摔跤运动员进行排序,然后按照字母顺序对那些可能具有相同评论次数的人进行排序。

我知道我需要使用内部联接,我一直在尝试以下但我无法使其工作

select * from(select reviewers.id, wrestlers.name, count(*) from wrestlers inner join reviewers group by reviewers.id having count(reviewers.id) >= 200) order by count(*) DESC name;

然而,这需要永远输出数据。

1 个答案:

答案 0 :(得分:0)

它永远消失,因为数据库将每个评论与每个摔跤手结合在一起,因为你确实忘记了连接条件。 而且你不需要子查询:

SELECT id,
       name,
       count(*)
FROM reviewers
JOIN wrestlers USING (id)
GROUP BY id
HAVING count(*) >= 200
ORDER BY count(*) DESC, name;