我有一张名为摔跤手的桌子
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;
然而,这需要永远输出数据。
答案 0 :(得分:0)
它永远消失,因为数据库将每个评论与每个摔跤手结合在一起,因为你确实忘记了连接条件。 而且你不需要子查询:
SELECT id,
name,
count(*)
FROM reviewers
JOIN wrestlers USING (id)
GROUP BY id
HAVING count(*) >= 200
ORDER BY count(*) DESC, name;