SQL查询帮助 - 使用一些返回的空值查询多个表

时间:2015-12-27 02:25:28

标签: mysql sql

我试图找出如何使用单个查询而不是一堆查询。

我有3张桌子。

  

游戏(ID,GameName,Team1_id,Team2_id,日期时间)

     

GameResults(ID,game_ID,win_team,得分)

     

团队(ID,team_name)

我想返回一个包含该列表的查询: GameName,datetime,Team1.team_name,Team2.team_name,win_team,score。

但是,我想要归还所有游戏和团队,即使还没有win_team或得分。如果我将表与外键绑在一起,则任何在GameResults表中没有记录的游戏都不会显示。我想要所有的游戏,但有些还没有玩过。如果有的话,我如何返回GameResults,但即使没有GameResults条记录,仍会返回所有游戏?

我可以返回所有游戏,然后循环检查GameResults表的结果,但似乎有一种方法可以通过单个查询执行此操作。

1 个答案:

答案 0 :(得分:0)

使用outer join

select g.gamename, g.datetime, t1.team_name, t2.team_name, gr.win_team, gr.score
from games g
   inner join teams t1 on g.team1_id = t1.id
   inner join teams t2 on g.team2_id = t2.id
   left join gameresults gr on g.id = gr.game_id