[英]count records and join tables
我想在下面加入的兩個表格是表格的詳細信息
Trophy_lookup
表包含
id | user_id | trophy_id
1 | 2 | 2
2 | 3 | 4
3 | 1 | 5
4 | 2 | 1
4 | 1 | 1
Users
表包含一般用戶信息
id | name | email
1 | john | john@webcom
2 | jacky | jacky@web.com
3 | Smith | smith@web.com
4 | Rob | rob@web.com
問題我想加入users
和trophy_lookup
表的方式,我可以計算用戶贏得多少trophis以及用戶名下面是我想要實現的我想要的輸出。
user_id| name | count(trophis)
1 | john | 2
2 | jacky| 2
到目前為止,我嘗試了很多東西,但我無法達到上述效果。 我對編寫查詢不太滿意,所以請指導我。 謝謝
試試這個查詢
select a.id, a.name, count(*) as cnt
from table2 a
inner join
table1 b
on a.id = b.user_id
group by
a.id, a.name
having count(*) > 1
order by cnt
| ID | NAME | CNT |
--------------------
| 2 | jacky | 2 |
| 1 | john | 2 |
替代方法
select a.name, b.*
from table2 a
inner join
(select a.id, count(*) as cnt
from table2 a
inner join
table1 b
on a.id = b.user_id
group by
a.id) b
ON a.id=b.id
where cnt > 1
| NAME | ID | CNT |
--------------------
| john | 1 | 2 |
| jacky | 2 | 2 |
試試這個查詢:
SELECT u.id,count(u.id),u.name
FROM trophy_lookup t
JOIN users u ON t.user_id=u.id
GROUP BY u.id ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.