как выполнить простое соединение - PullRequest
1 голос
/ 21 ноября 2011

У меня есть 2 таблицы, users и players

В таблице users есть столбцы userid и username.В таблице players у меня есть столбцы id, player1 и player2.Столбец id является первичным ключом с автоматическим приращением.И player1, и player2 являются внешними ключами userid в таблице users

Я пытаюсь выполнить объединение, в котором оба имени пользователя player1 и player2 находятся в одномстрока.Например, userid 4 имеет username Сэма, а userid 6 имеет username Кевина.Это будет пример результата запроса только для одной строки:

player1  username  player2  username
------------------------------------
   4        Sam       6       Kevin

Ответы [ 4 ]

1 голос
/ 21 ноября 2011
SELECT Player1, u1.UserName, Player2, u2.UserName
FROM Players, Users u1, Users u2
WHERE Player1=u1.userid and
Player2=u2.userid
1 голос
/ 21 ноября 2011

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

select p1.userid, p1.username, p2.userid, p2.username
from players p
join users p1 on p.player1 = p1.userid
join users p2 on p.player2 = p2.userid
where ...
0 голосов
/ 21 ноября 2011

попробуйте

выберите res1.player1, res1.user_name, res2.player1, res2.user_name из (ВЫБЕРИТЕ * ОТ test_player как внутреннее соединение t1 test_user как t2 на t1. player1 = t2.user_id) как res1, (SELECT * FROM test_player как t1 внутреннее соединение test_user как t2 на t1. player2 = t2.user_id) как res2

0 голосов
/ 21 ноября 2011

select a.userid, a.username, b.userid, b.username from players p join users a on p.player1 = a.userid join users b on p.player2 = b.userid where -------

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