2016-09-06 38 views
0

我已經具有鏈接2個表和降序輸出結果然後按字母

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 

評價員各自具有數對應於摔跤手錶中摔跤手的身份,並對每位摔跤手進行打分。

我想找到至少有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

這是永恆的,因爲數據庫結合每一個審查與每個摔跤手,因爲你沒有忘記連接條件。 而且您不需要子查詢:

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