两个表之间的MySQL内连接

时间:2013-12-11 18:53:10

标签: mysql sql inner-join

我正在尝试在MySQL中加入两个表格。这是我的表:

游戏桌

GameID      Date/Time          PlayerOneID   PlayerTwoID
 13    12/10/2013 10:53:29 PM     1              2    
 14    12/10/2013 10:57:29 PM     1              2
 15    12/10/2013 10:58:29 PM     2              1

我有另一个表格包含玩家的ID和玩家的名字。

玩家表

1   Dan
2   Jon

我希望生成的表格如下所示:

GameID      Date/Time          PlayerOneID   PlayerTwoID
 13    12/10/2013 10:53:29 PM     Dan        Jon      
 14    12/10/2013 10:57:29 PM     Dan        Jon
 15    12/10/2013 10:58:29 PM     Jon        Dan

以下是我目前正在做的事情:

SELECT Games.GameID, Games.`Date/Time`, Players.Name, PlayerTwoID
FROM Games

INNER JOIN Players
ON PlayerOneID = Players.ID

这会获得PlayerOnes的名字,但我也找不到获取PlayerTwos的名字。我尝试过使用两个INNER JOINS,但这没效果。我已经在堆栈上阅读了很多帖子,但我没有遇到任何有效的解决方案。我是MySQL的新手,所以后续解释会非常有用。

2 个答案:

答案 0 :(得分:2)

你走在正确的轨道上,你需要两次加入Players牌桌,如下:

SELECT Games.GameID, Games.`Date/Time`, p1.Name, p2.Name
FROM Games
INNER JOIN Players p1
ON PlayerOneID = p1.ID
INNER JOIN Players p2
ON PlayerTwoID = p2.ID

您可能错过的是使用别名(p1,p2)来区分您要加入的玩家表的两个副本。

答案 1 :(得分:0)

select GameID, p1.name playerOneName,p2.name playerTwoName from
games inner join players p1 on games.playerOneID=p1.id
inner join players p2 on games.playerTwoID=p2.id
order by GameID asc;

the terminal execution result is shown