Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
两个表之间的MySQL内部联接_Mysql_Sql_Inner Join - Fatal编程技术网

两个表之间的MySQL内部联接

两个表之间的MySQL内部联接,mysql,sql,inner-join,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 1

我正在尝试连接
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
1   Dan
2   Jon
我有另一个表包含一个球员的ID和球员的名字

玩家表

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
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

这得到了玩家的名字,但我找不到其他地方也能得到玩家的名字。我尝试过使用两个内部联接,但都不起作用。我已经阅读了很多关于堆栈的帖子,但是我没有找到任何有效的解决方案。我是MySQL新手,所以后续的解释会很有帮助。

如果您的思路正确,您确实需要加入两次玩家表,如下所示:

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)来区分要加入的两个Players表副本

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;

谢谢!不过这真的很奇怪。。我已经试过了,但没用。可能是因为我使用了Players.Name,Players.Name而不是p1.Name,p2.Name吗?@Jonathan-Ha,是的,只是更新了我的答案,以表明这一点。现在有了意义。谢谢你的帮助!