Weitere Sortierung einer Tabelle - SQL SELECT

mkoeni1

Erfahrenes Mitglied
Hallo Leute,

ich bräuchte Eure Hilfe. Ich habe eine Tabelle in MySQL mit Mannschaften und die Abfrage mache ich per SQL in PHP. Diese soll in erster Linie nach Punkten sortiert werden.

Das habe ich auch soweit hinbekommen:
Code:
SELECT * FROM tabelle_2007_2008 ORDER BY m_punkte DESC;

Jetzt kann es aber sein, dass mehrere Mannschaften 6 Punkte haben. Aber bestimmt unterschiedliche Tordifferenz. Ich möchte einfach als zweites Kriterium nach der Anzahl der erzielten Tore (tore_for) sortieren.
Beispiel:
1. Platz: Mannschaft 1: 6 Punkte, 8:2 Tore
2. Platz: Mannschaft 3: 6 Punkte, 6:5 Tore
3. Platz: Mannschaft 2: 6 Punkte, 3:0 Tore
4. Platz: Mannschaft 4: 6 Punkte, 2:2 Tore

Meine Tabelle sieht so aus:
Code:
CREATE TABLE `tabelle_2000_2001` (
  `m_id` int(11) NOT NULL auto_increment,
  `m_punkte` int(11) NOT NULL default '0',
  `m_name` varchar(255) collate latin1_german1_ci NOT NULL default '',
  `m_spiele` int(11) NOT NULL default '0',
  `m_siege` int(11) NOT NULL default '0',
  `m_unent` int(11) NOT NULL default '0',
  `m_nieder` int(11) NOT NULL default '0',
  `tore_against` int(11) NOT NULL default '0',
  `tore_for` int(11) NOT NULL default '0',
  PRIMARY KEY  (`m_id`),
  KEY `m_Spiele` (`m_spiele`,`m_siege`,`m_unent`,`m_nieder`,`tore_for`)
) ENGINE=MyISAM AUTO_INCREMENT=27 DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci COMMENT='Tabelle 2000_2001' AUTO_INCREMENT=27 ;
In meiner jetztigen Abfrage kommt es durchaus vor dass die Abfrage der Tabelle so aussieht (nicht alle Spalten berücksichtigt):
8. Platz: Mannschaft 5: 3 Punkte, 3:3Tore
9. Platz: Mannschaft 6: 3 Punkte, 6:3 Tore
10. Platz: Mannschaft 7: 1 Punkte, 2:4 Tore
11. Platz: Mannschaft 8: 1 Punkte, 4:5 Tore

Das stimmt so leider nicht, denn Mannschat 6 steht vor Mannschaft 5. Kann mir jmd. das richtige SQL-Statement sagen?

Vielen Dank
Matze
 
Zuletzt bearbeitet:
Hallo,

versuchs mal so:
Code:
SELECT * FROM tabelle_2007_2008 ORDER BY m_punkte DESC, tore_for-tore_against DESC;

Hast du für jede Saison eine eigene Tabelle?
 
Danke für die schnelle Antwort. Den SQL-Befehl werde ich gleich mal ausprobieren.

hab den Select ausprobiert: er macht aber immer noch den Fehler.

Das ganze habe ich hier als Beispiel:

Platz 10 Mannschaft 2 28 9 5 14 51:62 32
Platz 11 Mannschaft 1 28 8 8 12 49:55 32

Meines erachtens müsste Mannschaft 1 auf dem 10 Platz sein und Mannschaft 2 auf dem 11. Denn eine Tordifferenz von -6 (55-49) ist besser als eine Tordifferenz von -11 (62 - 51) bei 28 Punkten die beide haben.
Wahrscheinlich habe ich mich unverständlich ausgedrückt in meinem ersten Post.

Hast du für jede Saison eine eigene Tabelle?
Ja habe ich. Hast du denn eine andere Idee?

Matze
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück