我需要根据我的每个parent_id而不是下面where子句中指定的特定parent_id来计算。
select count(*), U_ID
from (
select `users`.`u_id` AS U_ID
from `users` inner join `referrals` on `users`.`u_id` = `referrals`.`child_u_id`
where `referrals`.`level` = 1
and `referrals`.`parent_id` = '15254'
and `users`.`plan` = 2
group by `referrals`.`child_u_id`
) AS t.
这里15254
是特定用户。.我希望所有用户列表都包含此计数
它给了我以下结果,我希望所有用户都获得它
Count(*) | U_Id
3 | 15254
答案 0 :(得分:0)
显然,您是这个平台的新手。但是要想得到其他帮助,请尽量体贴帮助。阅读有关使用stackoverflow的一些技巧,以便更好地展示您的困难并获得更快,更清晰的答案。这样说,我认为您需要省略在where子句中对其进行过滤以仅显示该user_id的结果。因此,您可以尝试此操作,最后按u_id对其进行分组。
select count(*), U_ID
from (
select `users`.`u_id` AS U_ID
from `users` inner join `referrals` on `users`.`u_id` = `referrals`.`child_u_id`
where `referrals`.`level` = 1
---and `referrals`.`parent_id` = '15254'
and `users`.`plan` = 2
group by `referrals`.`child_u_id`
) AS t
Group by u_Id
答案 1 :(得分:0)
我已经通过此查询实现了我的目标。
`
select count(*) as C,U_ID
from (
select R.`parent_u_id` AS U_ID
from `users` as U INNER join `referrals` as R on U.`u_id` = R.`child_u_id`
where R.`level` = 1
and U.`plan` = 2
group BY R.child_u_id
)
as t
Group by U_ID
HAVING C >= 5
`