我想在Referid中获取具有相同值的用户的详细信息。在我的用户数据中,我有用户名,名字,姓氏,别称,用户名,手机,电话号码,地址,居住状态,国家,电子邮件,推荐电子邮件,推荐ID,用户阶段,创建日期,时间戳记
我不知道如何构造代码以使用户在Referid中具有相同的值。
示例。
Userid | referid| name | username|
1 |201 | Jack | jack02 |
2 |111 | john | john02 |
3 |331 | phil | frl02 |
4 |201 | jess | jagg02 |
它也会以表格形式列出
SELECT
users.userid,
users.firstname,
users.othername,
users.surname,
users.email,
users.mobilephone,
users.referalid,
users.active,
stages.stage_description
FROM users
INNER JOIN stages ON users.user_stage=stages.stage_id
GROUP BY users.referalid
HAVING COUNT(*) > 0
答案 0 :(得分:1)
这似乎可以通过相关子查询解决:
select u.*
from users u
where (select count(*) from users u1 where u1.referid = u.refid) > 1
这将为您提供referid
被至少另一个用户使用的所有用户的列表。尚不清楚表stages
的用途是什么,所以我将其保留。
您也可以join
进行汇总查询:
select u.*
from users u
inner join (
select refid, count(*) from users group by refid having count(*) > 1
) g on g.refid = u.refid
或在MySQL 8.0中使用窗口函数:
select *
from (select u.*, count(*) over(partition by refid) cnt from users) x
where cnt > 1