我在使用 PHP 查询的 mySQL 数据库中有三个表:
球员
player_id | player_name
-----------------------
1 Tom
2 Dick
3 Harry
游戏
game_id | game_name
-------------------
1 Tennis
2 Cricket
3 Rugby
gamePlayerRel
game_id | player_id
-------------------
1 2
1 3
2 3
3 2
3 3
我想要一个查询,它将返回玩家 ID 和姓名以及他们玩的游戏。如果他们不玩游戏——就像 Tom (1) 的情况——那么我想要 id 和 name 以及 a null
or0
值。
期望的结果
player_id | player_name | game_id | game_name
---------------------------------------------
1 Tom null null
2 Dick 1 Tennis
2 Dick 3 Rugby
3 Harry 1 Tennis
3 Harry 2 Cricket
3 Harry 3 Rugby
我能得到的最接近的是以下查询:
SELECT players.player_id, players.player_name, gamePlayerRel.game_id, games.game_name
FROM players
INNER JOIN gamePlayerRel
INNER JOIN games
ON players.player_id = gamePlayerRel.player_id
AND gamePlayerRel.game_id=games.game_id
这很接近,只是它不返回分配给他们游戏的玩家的数据。在上面的例子中,结果是我想要的,除了 Tom (1) 和他的null
值被排除在外。
我是这方面的超级菜鸟,所以如果我从错误的角度来看它,请说出来,如果你能提出一个查询,它会做我想做的事。
提前感谢您的任何帮助和建议。