如何获取在多行中仅使用一个值的用户列表 - MySQL
P粉214089349
P粉214089349 2024-02-03 23:19:38
[MySQL讨论组]

我有一张付款表。它有一个名为 user_id 和 payment_type 的列。对于每次付款,用户可以有多种付款类型。 我想找到一生中只使用过一种 payment_type 的用户。

让我通过一个例子来清楚地说明: 假设我有以下数据:

user_id payment_type
1   UPI
1   NB
2   UPI
2   UPI

对于上述内容,我只希望 user_id 2 作为输出,因为对于这两次付款,它仅使用了 1 个 payment_type。

有人可以帮忙吗?

P粉214089349
P粉214089349

全部回复(1)
P粉337385922

一个简单的 HAVING 和 COUNT 应该可以解决问题:

select user_id
from my_table
group by user_id
having count(distinct payment_type)=1;

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=65f673a7df3ac0ee18c13105a2ec17ad一个>

如果您想在结果集中包含 payment_type,请使用:

select my.user_id,my.payment_type
from my_table my 
inner join ( select user_id
             from my_table
             group by user_id
             having count(distinct payment_type)=1
            ) as t1 on t1.user_id=my.user_id
group by  my.user_id,my.payment_type  ;

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=cc4704c9e51d01e4e8fc087702edbe6e 一个>

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号