Seite 1 von 1

Frage: SELECT bei mehreren Tabellen...

Verfasst: 26.09.2007 12:00
von xpressive
Habe ein kleines Problem, bei dem mir bestimmt jemand mal eben weiterhelfen kann:

Ich habe eine Tabelle mit Spielern:

Tabelle "Spieler": ID|Name|Adresse etc....

und eine zweite mit Spielen:

Tabelle "Games": ID|Spieler-ID|Datum etc...

Jetzt möchte ich eine Tabelle der Spieler ausgeben, in der alle Spieler samt ihren Daten angezeigt werden. Kein Problem.

Allerdings soll diese Liste auch nach Anzahl der Spiele, an denen jeder Spieler teilgenommen hat, sortiert werden. Wie müsste denn die SELECT-Abfrage lauten, wenn ich alle Daten aus der Tabelle "Spieler" auslesen möchte, diese aber nach Häufigkeit der Games mit der jeweiligen Spieler-ID sortiert werden sollen?

Kann mir jemand vielleicht einen Tipp geben?

Verfasst: 26.09.2007 13:23
von gn#36
Ich nehme mal an es gibt pro Spieler und Spiel einen Eintrag in der zweiten Tabelle?
Probier mal das hier:

Code: Alles auswählen

select p.*, COUNT(g.spieler-ID) as anz FROM spieler p LEFT JOIN spiele g ON g.spieler-ID = p.ID GROUP BY g.spieler-ID ORDER BY anz
evtl. musst du es auch so machen:

Code: Alles auswählen

SELECT p.*, COUNT(g.spieler-ID) as anz FROM spieler p, spiele g WHERE p.ID = g.spieler-ID GROUP BY g.spieler-ID ORDER BY anz

Verfasst: 26.09.2007 14:00
von xpressive
Hm, das gibt bei mir folgende Fehlermeldung:

Code: Alles auswählen

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /www/htdocs/v165816/Board/website/scripts/MemberManager/overview.php on line 91

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /www/htdocs/v165816/Board/website/scripts/MemberManager/overview.php on line 111

(Ich benutze nach dem Query mysql_num_rows($results) und mysql_fetch_assoc($results), um die Anzahl der gelieferten Datensätze und die einzelnen Felder auszulesen).

Ich nehme an, daß die Abfrage halt fehlschlägt, habe aber keine Ahnung warum...

Verfasst: 26.09.2007 14:04
von Dr.Death
Wenn der Inhalt von mysql_num_rows($results) leer ist, erhälst Du o.g. fehlermeldung....

Prüfe doch der Einfachheit halber die SQL Abfrage im phpMyAdmin...

Verfasst: 26.09.2007 14:28
von S2B
Besser gesagt wenn $results keine gültige MySQL-Ressource ist. Wie sieht denn dein mysql_query()-Aufruf aus?

Verfasst: 27.09.2007 00:23
von Pyramide