2016-07-12 5 views
-2

私はサッカー(サッカー)統計のためのデータベースを持っています。私はclubseasonと呼ばれ、私は(この場合では面白くないといくつかの他、)この列が含まれて季節による統計のためのテーブルを持っているこの方法で四季を通じてhttp://footballfacts.ru/turnircats/105166-chempionat-sssrMySQLの出力先

を最初の3つのチームを表示したい:

  • idClubSeason
  • idClub
  • idSeason
  • clubPosition

私が持っている次のテーブルは、クラブとシーズンのためのものであり、それぞれida(idClubとidSeason)と名前(クラブ名とシーズンの名前)です。したがって、リレーショナルデータベースの3つのテーブル。その方法でPHPでSQLクエリを出力する助けはありますか?

私のクエリは、このようなものです:

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

**司会ノート**:市民の意見を維持し、建設してください。ありがとうございました。 –

+1

データとともにsqlfiddleサンプル使用法、および期待される結果を表形式で表示します。 – Drew

+0

私の結果は次のようなものです。[リンク] http://i.imgur.com/GEdawQE.jpg –

答えて

1

お名前などのために、追加のテーブルを結合する必要がありますので、私は、あなたが持っている正確なデータベース構造を知りませんが、これはあなたを取得するのに十分でなければなりませんどのようにそれを解決するためのアイデア。 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

ありがとう、それは私が探している答えです。今見ているとかなりシンプルです。それはあなたの脳がいつものように反応しないときです:) –

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