So erhalten Sie eine Liste von Benutzern, die nur einen Wert in mehreren Zeilen verwenden – MySQL
P粉214089349
P粉214089349 2024-02-03 23:19:38
0
1
354

Ich habe einen Zahlungsbeleg. Es gibt eine Spalte mit den Namen user_id und payment_type. Für jede Zahlung können Benutzer mehrere Zahlungsarten haben. Ich möchte Benutzer finden, die in ihrem Leben nur einen Zahlungstyp verwendet haben.

Lassen Sie es mich anhand eines Beispiels klar erklären: Nehmen wir an, ich habe folgende Daten:

user_id payment_type
1   UPI
1   NB
2   UPI
2   UPI

Für das Obige möchte ich nur user_id 2 als Ausgabe, da für diese beiden Zahlungen nur 1 Zahlungstyp verwendet wird.

Kann jemand helfen?

P粉214089349
P粉214089349

Antworte allen(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 一个>

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!