Ik heb een probleem waar ik niet uitkom. Heb al gezocht en diverse oplossingen gevonden, maar krijg het niet voor elkaar om ze toe te passen zonder dat MySql 4.0.24 het afkeurt.
De database bevat uitslagen van sportwedstrijden waarbij ik een tabel "speler" heb en een tabel "wedstrijd". Hierbij bevat de tabel "wedstrijd" de velden "speler1" en "speler2" die beide verwijzen naar speler.id.
Wat ik wil, is een overzicht van alle spelers die gespeeld hebben, gesorteerd op de totaal behaalde punten aflopend, gevolgd door het aantal gespeelde wedstrijden oplopend. Ik heb het volgende al voor elkaar:
Query:
Output:
Wat ik in plaats hiervan graag wil zien, is het volgende:
Oftewel: van het huidige resultaat moeten de punten en aantallen van dezelfde speler steeds gesommeerd terugkomen.
Gevonden voorbeelden in de structuur met geneste query's gaan fout op de geneste query terwijl 4.0.24 volgens MySql.com wel geneste query's ondersteunt. Maar misschien doe ik toch iets verkeerd. Wordt er wel moe van, maar misschien kan iemand een query ophoesten die doet wat ik wil
. Anders wordt het twee query's en nabewerken in PHP maar als het niet hoeft...
De database bevat uitslagen van sportwedstrijden waarbij ik een tabel "speler" heb en een tabel "wedstrijd". Hierbij bevat de tabel "wedstrijd" de velden "speler1" en "speler2" die beide verwijzen naar speler.id.
Wat ik wil, is een overzicht van alle spelers die gespeeld hebben, gesorteerd op de totaal behaalde punten aflopend, gevolgd door het aantal gespeelde wedstrijden oplopend. Ik heb het volgende al voor elkaar:
Query:
code:
1
2
3
4
5
6
7
8
9
10
11
| SELECT s.voornaam, s.achternaam, COUNT(*) AS Aantal, SUM(won1) AS Punten FROM fg_wedstrijd w INNER JOIN fg_speler s ON (w.speler1=s.id) GROUP BY s.id UNION SELECT s.voornaam, s.achternaam, COUNT(*) AS Aantal, SUM(won2) AS Punten FROM fg_wedstrijd w INNER JOIN fg_speler s ON (w.speler2=s.id) GROUP BY s.id ORDER BY Punten DESC, Aantal ASC |
Output:
code:
1
2
3
4
5
| Voornaam | Achternaam | Gespeeld | Punten Piet | Krediet | 3 | 6 Jan | Klaassen | 1 | 3 Piet | Krediet | 5 | 15 Jan | Klaassen | 3 | 1 |
Wat ik in plaats hiervan graag wil zien, is het volgende:
code:
1
2
3
| Voornaam | Achternaam | Gespeeld | Punten Piet | Krediet | 8 | 21 Jan | Klaassen | 4 | 4 |
Oftewel: van het huidige resultaat moeten de punten en aantallen van dezelfde speler steeds gesommeerd terugkomen.
Gevonden voorbeelden in de structuur met geneste query's gaan fout op de geneste query terwijl 4.0.24 volgens MySql.com wel geneste query's ondersteunt. Maar misschien doe ik toch iets verkeerd. Wordt er wel moe van, maar misschien kan iemand een query ophoesten die doet wat ik wil