Frank (no reg): MySQL-Problem: Query über 4 Tabellen mit mehreren Counts

Beitrag lesen

Hallo,

geht es um eine bestimmte Sportart?

Davon abgesehen, finde ich deine Umsetzung unnötig komplex. Statt alles erst bei der Auswertung (Anzeige) berechnen zu lassen, solltest du evt. beim Eintragen von Ergebnissen Berechnungen (über Trigger) auslösen, welche in bestimmten Tabellen Updates auslösen. Damit sollte die Query, welche dir den "Liga" Stand ausgibt ein Kinderspiel werden.

Ich habe vor 4 Jahren mal ein (firmeninternes und nicht-reguliertes) Wettspiel für die Fussball WM gebaut, welches abgesehen von den Spielergebnissen natürlich noch die Wetten und Wettergebnisse mit berücksichtigen musste. Stand damals in etwa vor den selben Problemen, zu komplexe und unperformante Queries. Da hat selbst ein besseres Datenbanksystem als mysql nichts genutzt.

Warum hast du in "matches" 3x dieselbe Spalte als Key definiert. Einmal Primary Key hätte doch genügt?

"matches_draw" und "matches_won" sind ja Tabellen und keine Spalten. Vielleicht solltest du dem COUNT(*) darin noch einen Aliasnamen verpassen ... und dann:

matches_won.Anzahl * 3 + matches_draw.Anzahl

CIao, Frank