加入6个MySQL表用于体育应用

时间:2012-12-06 20:47:30

标签: mysql

我正在创建一个将用于体育比赛的数据库。要查看游戏结果,我需要将六个表连接在一起:

  • 赛季s
  • Round r
  • Rounddetails rd
  • 匹配m
  • Matchdetails md
  • 游戏g

我希望select语句返回如下内容:

g.gameid,g.pointsfor,g.pointsagainst,md.matchdetailsid,m.matchid,rd.rounddetailsid,r.roundid,s.seasonid

有人可以帮我写一个会返回的MySQL语句吗?

请点击链接查看表格

a tables

编辑:到目前为止,我已尝试过此查询:

select
`s`.`seasonID` AS `seasonID`,
`r`.`roundID` AS `roundid`,
`rd`.`roundDetailsID` AS `roundDetailsID`,
`m`.`matchid` AS `matchid`,
`md`.`matchDetailsID` AS `matchDetailsID`,
`g`.`gameid` AS `gameid`,
`g`.`pointsfor` AS `pointsfor`,
`g`.`pointsagainst` AS `pointsagainst`
from (((((`season` `s` left join `round` `r` on((`s`.`SeasonID` = `r`.`SeasonID`)))
left join `rounddetails` `rd` on((`r`.`RoundID` = `rd`.`RoundID`)))
left join `match` `m` on((`rd`.`matchid` = `m`.`matchid`)))
left join `matchdetails` `md` on((`m`.`matchid` = `md`.`matchid`)))
left join `game` `g` on((`md`.`matchdetailsid` = `g`.`matchdetailsid`)))

1 个答案:

答案 0 :(得分:0)

SELECT DISTINCT g.gameid, g.pointsfor, g.pointsagainst, md.matchdetailsid, m.matchid, rd.rounddetailsid, r.roundid, s.seasonid
FROM Match AS m
INNER JOIN MatchDetails as md
ON Match.MatchId = MatchDetails.MatchId
INNER JOIN Game as g
ON MatchDetails.MatchDetailSid = MatchDetailSid
INNER JOIN RoundDetails as rd
ON Match.MatchId = RoundDetails.MatchId
INNER JOIN Round as r
ON Round.RoundId = RoundDetails.RoundId
INNER JOIN Season as s
ON Round.SeasonId = Season.SeasonId
WHERE MatchId = 1