簡體   English   中英

計數記錄和連接表

[英]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

問題我想加入userstrophy_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

SQL FIDDLE

| 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

SQL FIDDLE

|  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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM