2 Spalten verbinden!? GROUP BY Problem

peti86

Grünschnabel
Habe folgendes Problem:

Meine Tabelle Ergebnisse sieht in etwa so aus:

id | heimteam | gastteam | (weitere infos wie heimtore, gasttore usw)

Bsp:
1 | Team A | Team B
2 | Team C | Team A
3 | Team B | Team C
4 | Team X | Team Y
...

Jetzt würde ich gerne eine Top10 Liste machen, die anzeigt welche 10 Teams die meisten Spiele haben. Sollte dann so aussehen:

1. Team B --- 222 Spiele
2. Team A --- 210 Spiele
3. Team Y --- 185 Spiele
4. Team C --- 140 Spiele
...
10. Team X --- 35 Spiele

Kann man die Spalten heimteam und gastteam irgendwie verbinden!? Ich denke mal dass man die Datensätze irgendwie zählen muss in denen das Team ein Spiel hat... Habe schon versucht das ganz mit GROUP BY heimteam und ORDER BY count zu versuchen. Das klappt auch soweit. Im Endeffekt gibt mir diese Liste dann nur an wer die meisten Heimspiele hatte. Ich möchte aber ausgeben lassen wer die meisten Spiele hatte egal ob Heimspiel oder Auswärtsspiel.
Wäre dankbar für Lösungsvorschläge wenn es überhaupt eine Lösung für dieses Problem gibt!
 
Du könntest es mit einem Subquery versuchen:
Code:
SELECT 
  a.heimteam AS Team,
  (COUNT(a.heimteam)
    + (SELECT COUNT(*) 
        FROM ergebnisse b
        WHERE b.gastteam=a.heimteam)) AS Spiele
FROM ergebnisse a
GROUP BY a.heimteam
ORDER BY Spiele DESC
Gruß hpvw
 
Vielen Dank für die schnelle Antwort!

Den Ansatz verstehe ich, aber dieses Subquery funktioniert weder bei mir lokal noch auf meinem Server, von daher bringt mich diese Lösung nicht viel weiter... Oder geht das Subquery doch irgendwie unter mysql 4.0?
 
Zuletzt bearbeitet:
Subqueries funktionieren erst ab Version 4.1. Eine Lösung ohne Subquery fällt mir im Moment nicht ein.

Gruß hpvw
 
Zurück