Comment obtenir la liste des utilisateurs en utilisant une seule valeur sur plusieurs lignes - MySQL
P粉214089349
P粉214089349 2024-02-03 23:19:38
0
1
353

J'ai une feuille de paiement. Il comporte une colonne nommée user_id et payment_type. Pour chaque paiement, les utilisateurs peuvent avoir plusieurs types de paiement. Je souhaite trouver des utilisateurs qui n'ont utilisé qu'un seul type de paiement au cours de leur vie.

Permettez-moi de vous expliquer clairement avec un exemple : Disons que j'ai les données suivantes :

user_id payment_type
1   UPI
1   NB
2   UPI
2   UPI

Pour ce qui précède, je veux seulement user_id 2 comme sortie car pour ces deux paiements, il n'utilise qu'un seul type de paiement.

Quelqu'un peut-il m'aider ?

P粉214089349
P粉214089349

répondre à tous(1)
P粉337385922

Un simple HAVING et COUNT devraient faire l'affaire :

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一个>

Si vous souhaitez inclure payment_type dans l'ensemble de résultats, utilisez :

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 一个>

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!