2016-07-12 19 views
-2

Ich habe Datenbank für Fußball (Statistik). Ich möchte auf diese Weise für die Statistik durch Jahreszeiten http://footballfacts.ru/turnircats/105166-chempionat-sssrMySQL-Ausgabe von Spalten

Ich habe Tisch ersten drei Teams durch Jahreszeiten zeigen, dass diese Spalten enthält (und einige andere, nicht interessant in diesem Fall) genannt clubseason:

  • idClubSeason
  • idClub
  • idSeason
  • clubPosition

Die nächsten Tische, die ich habe, sind für Clubs und Saisons, jeweils mit IDs (idClub und idSeason) und Namen (Clubname und Saison). Also drei Tabellen in relationaler Datenbank. Gibt es Hilfe zur Ausgabe von SQL-Abfragen in PHP auf diese Weise?

Meine Frage ist wie folgt:

SELECT `jos_igraciDB_club`.`name` , `jos_igraciDB_season`.`idSeason`, `jos_igraciDB_season`.`name`,`jos_clubseason`.`clubPosition`, `jos_igraciDB_club`.`idClub` 
FROM `jos_clubseason` 
LEFT JOIN `jos_igraciDB_club` ON `jos_clubseason`.`idClub` = `jos_igraciDB_club`.`idClub` 
LEFT JOIN `jos_igraciDB_season` ON `jos_clubseason`.`idSeason` = `jos_igraciDB_season`.`idSeason` 
ORDER BY `jos_clubseason`.`clubPosition` ASC 
+0

** Moderator Anmerkung **: Bitte halten Sie Kommentare Zivil- und konstruktiv. Vielen Dank. –

+1

SQLFiddle mit Daten. Zeigen Sie eine Beispielverwendung und erwartete Ergebnisse in Tabellenform an. – Drew

+0

Meine Ergebnisse sind wie folgt [link] http://i.imgur.com/GEdawQE.jpg –

Antwort

1

Ich weiß nicht genau Datenbankstruktur, die Sie haben, so dass Sie etc zusätzliche Tabellen für Namen verbinden müssen werden, aber das sollte genug sein, um Sie eine Idee, wie man es löst. http://sqlfiddle.com/#!9/d22e29/6

SELECT 
    cs.season, 
    first.club, 
    second.club, 
    third.club 
FROM 
    clubseason cs 
    INNER JOIN clubseason first ON first.season = cs.season AND first.position = 1 
    INNER JOIN clubseason second ON second.season = cs.season AND second.position = 2 
    INNER JOIN clubseason third ON third.season = cs.season AND third.position = 3 
GROUP BY cs.season 
+0

Danke, das ist die Antwort, die ich suche. Es ist ziemlich einfach, wie ich jetzt sehe. Das ist, wenn dein Gehirn nicht wie gewohnt reagiert :) –

0
SELECT 
    jos_igraciDB_season.name, 
    cnf.name, cns.name, cnt.name, 
    cs.idSeason, 
    first.idClub, 
    second.idClub, 
    third.idClub 
FROM 
    jos_clubseason cs 
    INNER JOIN jos_clubseason first ON first.idSeason = cs.idSeason AND first.clubPosition = 1 
    INNER JOIN jos_clubseason second ON second.idSeason = cs.idSeason AND second.clubPosition = 2 
    INNER JOIN jos_clubseason third ON third.idSeason = cs.idSeason AND third.clubPosition = 3 
    LEFT JOIN jos_igraciDB_club cnf ON first.idClub = cnf.idClub AND first.clubPosition = 1 
    LEFT JOIN jos_igraciDB_club cns ON second.idClub = cns.idClub AND second.clubPosition = 2 
    LEFT JOIN jos_igraciDB_club cnt ON third.idClub = cnt.idClub AND third.clubPosition = 3 
    LEFT JOIN jos_igraciDB_season ON cs.idSeason = jos_igraciDB_season.idSeason 
GROUP BY cs.idSeason