Соедините две таблицы и отобразите детали - PullRequest
0 голосов
/ 27 февраля 2012

У меня две таблицы.
1-я таблица:
Имя таблицы: Пользователь

-id
-name

2-я таблица: Имя таблицы: Запись

-player1ID
-player2ID
-player3ID
-location
-time  

Я хотел быпоказать все записи.
Я использую "SELECT * FROM Record"
Однако я хотел бы отображать не идентификатор игрока, я хочу отобразить имя игрока.Как я могу написать SQL, который может это сделать?Спасибо.

Ответы [ 3 ]

1 голос
/ 27 февраля 2012

Похоже, вы хотите иметь таблицу записей с именами, замененными идентификаторами?

В этом случае вы можете JOIN таблицу User к таблице Record (подробнее о соединениях здесь ):

SELECT u.name as player1, u2.name as player2, u3.name as player3,
       r.location, r.time
FROM Record r
JOIN User u  ON  u.id=player1ID
JOIN User u2 ON u2.id=player2ID
JOIN User u3 ON u3.id=player3ID
1 голос
/ 27 февраля 2012

Вам нужен INNER JOIN.
Хитрость заключается в том, чтобы присоединиться к таблице User несколько раз (под разными псевдонимами), потому что вам нужно несколько значений из нее.

select u1.name as player1, u2.name as player2, u3.name as player3, r.location, r.time
from Record r
inner join User u1 on r.player1ID = u1.id
inner join User u2 on r.player2ID = u2.id
inner join User u3 on r.player3ID = u3.id
0 голосов
/ 27 февраля 2012

выберите a.name, b.name, c.name, d.location, d.time из Записи d, Пользователь a, Пользователь b, Пользователь c, где d.player1Id = a.id && d.player2ID = b.id && d.player3ID = c.id;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...