SQL Server:加入三个表并返回空记录

时间:2014-02-12 16:58:12

标签: sql sql-server tsql

我不知道如何加入这个树表以获得预期的结果。我正在使用LEFT / RIGHT / INNER / OUTER连接进行测试,但我可以获得具有“null”值的行。

我正在玩这张桌子:

游戏表:

Title    id
------------
Halo     1
Portal   2
Mario    3

流派表:

Name     id
------------
Action   1
FPS      2
MMO      3
Arcade   4
Puzzle   5

游戏类型:

GameId     GenreId
------------------
1          1
1          2
3          5

这就是我得到的:

Title       Genre
-----------------
Halo        Action
Halo        FPS
Mario      Puzzle

这是我想要的结果:

Title       Genre
-----------------
Halo        Action
Halo        FPS
Portal      NULL
Mario      Puzzle

注意:我读过这个问题:SQL Server : Join Two Tables and Return With Null Records但没有帮助我。

请,某种帮助!

1 个答案:

答案 0 :(得分:1)

你需要左(外)连接才能这样做:

SELECT Games.Title, Genres.Name
FROM Games
LEFT JOIN GameGenres ON Games.Id = GameGenres.GameId
LEFT JOIN Genres ON GameGenres.GenreId = Genres.Id