2013-12-11 4 views
1

Я пытаюсь ВСТУПИТЬ в две таблицы в MySQL. Вот мой стол: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 

Я хотел бы результирующую таблицу, чтобы выглядеть следующим образом:

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

Вы были на правильном пути, вы должны присоединиться к столу Игроки дважды, например, так:

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) различать два копии таблицы игроков, к которой вы присоединяетесь.

+0

Спасибо! Это действительно странно, хотя .. Я уже пробовал это, и это не сработало. Может быть, это потому, что я использовал Players.Name, Players.Name вместо p1.Name, p2.Name? – Jonathan

+0

@ Джонатан - Ха, да, просто обновлял мой ответ, чтобы предложить это. –

+0

Теперь это имеет смысл. Спасибо за помощь! – Jonathan

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

Смежные вопросы