Krain Geschrieben 29. September 2005 Teilen Geschrieben 29. September 2005 Hallo zusammen, Ich stehe momentan auf dem Schlauch und hoffe, dass ihr mir weiterhelfen könnt. Ich verwende eine MySQL-Datenbank, Version habeich gerade nicht im Kopf Zu meinem Problem: Ich habe eine Benutzertabelle und eine Rangtabelle, die über die Rang-Id im Benutzer verknüpft sind. Also jeder Benutzer kann nur einen Rang haben. Jetzt möchte ich mittels SQL alle Nutzer mit Rängen auslesen, gruppiert nach Rängen. SELECT COUNT(rank_id) AS count,rank_id,rank_title, username FROM usertabelle LEFT JOIN rangtabelle ON usertabelle.user_rank = rangtabelle.rank_id GROUP BY rank_id, username HAVING rank_id IS NOT NULL [/PHP] Ich hoffte eigentlich mit dem Count die Anzahl der User mit diesem Rang auslesen zu können, das funktioniert aber nicht. Muss ich für jeden Rang eine einzelne Abfrage starten um die Anzahl der User mit diesem Rang herauszufinden, oder läßt sich das auch irgentwie in meine Abfrage mit einbinden? (Mir ist klar, dass dieses Feld dann mehrmals mit der selben Zahl auftreten würde, aber das ist mir egal, da ich den Rang ohnehin nur einmal in ein Array wegschreibe.) Ich hoffe ihr könnt mir weiterhelfen Gruss markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mme Geschrieben 4. Oktober 2005 Teilen Geschrieben 4. Oktober 2005 SELECT COUNT(username) AS count,rank_id,rank_title FROM usertabelle LEFT JOIN rangtabelle ON usertabelle.user_rank = rangtabelle.rank_id GROUP BY rank_id, rank_title HAVING rank_id IS NOT NULL So kannst du abfragen wieviel User in einem Rank sind. In einem anderen Select kannst du dann abfragen welcher User in welchem Rank ist. Aber ich würde das nicht zusammenwerfen, da du sonst wie du schon sagtest vieles doppelt hast. Wenn du es trotzdem machen willst funktioniert unter Oracle sowas hier, ob allerdings unter mysql ein Select im Select so geht weiß ich nicht...: SELECT username, rank_id,rank_title, (select count(a.user_rank) from usertabelle a where a.user_rank = rangtabelle.rank_id) as count FROM usertabelle LEFT JOIN rangtabelle ON usertabelle.user_rank = rangtabelle.rank_id where rank_id IS NOT NULL Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.