我有下表:
| Id | referral |
|----|----------|
| 1 | 0 |
| 2 | 0 |
| 3 | 1 |
| 4 | 2 |
| 5 | 1 |
当用户的推荐栏值为 0 时,表示他没有点击任何推荐链接。如果有数字,则表示其他用户的 ID。
所以现在我只想要这种输出:
| Id | referral | referred_count |
|----|----------|----------------|
| 1 | 0 | 2 |
| 2 | 0 | 1 |
| 3 | 1 | 0 |
| 4 | 2 | 0 |
| 5 | 1 | 0 |
有没有一种方法可以只用一个 mysql 查询来获得这种输出?我尝试了很多东西,但我陷入困境。
最佳答案
一种简单的方法使用相关子查询:
select t.*,
(select count(*) from t t2 where t2.referral = t.id) as referred_count
from t;
关于mysql - 在一次查询中获取同一张表中每个用户的推荐计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51604092/