4 Stimmen

Hilfe bei einer mysql-Abfrage

Es tut mir leid, dass diese Frage so spezifisch ist, aber ich bin seit 48 Stunden wach und mein Geist ist wahrscheinlich gerade leer.

Ich habe also eine Tabelle -> id|userid|card
wo ein Benutzer mehrere Karten haben kann

Ich muss nur die Tabelle abfragen, um die userid zu finden, die genau 24 verschiedene Karten haben (es gibt Benutzer mit mehreren Karten).

Kann mir bitte jemand helfen?

Dankeschön

10voto

The Scrum Meister Punkte 29113
SELECT UserID
FROM tableName
GROUP BY UserID
HAVING COUNT(*) = 24

Véase GROUP BY (Aggregat) Funktionen

Aktualisierung: um Benutzer zu finden, die 24 verschiedene Karten haben:

SELECT UserID
FROM (
    SELECT UserID
    FROM tableName
    GROUP BY UserID, Card
) rs
GROUP BY UserID
HAVING COUNT(*) = 24

Alternativ dazu:

SELECT UserID
FROM tableName
GROUP BY UserID
HAVING COUNT(DISTINCT Card) = 24

1voto

Gerrat Punkte 27364
SELECT userid FROM (
    SELECT userid, count(*) as cnt FROM some_table GROUP BY userid
) WHERE cnt = 24

0voto

Ahmad Punkte 11834
select * from 
    ( select count(*) cnt,card from tablename group by card ) 
where cnt=24

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X