我有一个像这样的表 users
:
id user refid
1 a null
2 b 1
3 c 1
4 d 2
5 f 3
我需要选择用户,按 refid 分组以及每个用户的每个 refid 计数。例如,
id user count
1 a 2
2 b 1
3 c 1
这是我试过的:
SELECT user, refid, count(*) cnt FROM `users` group by refid
但是,这给了我错误的每个值的用户。如何为每个值获取正确的用户?
最佳答案
我想这就是您要找的。基本上,您在那里缺少连接。
select u1.id, u1.user, count(u1.id) cnt from mlm_users u1
join mlm_users u2 on u1.id = u2.refid
group by u1.id, u1.user
这将返回 ID、用户和他们每个人拥有的推荐量(仅适用于至少有一个推荐的那些)。
关于mysql - 从同一张表中选择分组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19128125/