Как получить данные из таблицы - PullRequest
3 голосов
/ 19 ноября 2010

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

структура таблицы следующая.

создать таблицу #temp (Playerid int, PlayerName varchar (100), CaptainId int)

PlayerId     PlayerName     CaptainId
--------------------------------------
1            Dhoni          NULL
2            Sachin         1
3            Rahul          1

Я должен выбрать имя игрока вместе с именем его капитана из этой таблицы. Кто-нибудь может

Ответы [ 4 ]

1 голос
/ 19 ноября 2010

Есть несколько способов получить ответ на этот запрос, например:

select playerName, (select t2.playername from #temp t2 where t2.playerid = t.captainid  ) from #temp t


select t1.playername , t2.playername captain from #temp t1 left join #temp t2 on t1.captainid = t2.playerid
1 голос
/ 19 ноября 2010

Вы можете использовать самообъединение и псевдонимы таблиц.

Что-то вроде

SELECT p.PlayerName,
 c.PlayerName CaptainName
FROM #temp p LEFT JOIN
 #temp c ON p.CaptainId = c.PlayerId
1 голос
/ 19 ноября 2010

Предполагая, что CaptainId ссылается на PlayerId в той же таблице, вам потребуется следующее:

select t.PlayerName, t2.PlayerName as CaptainName
from #temp t
left join #temp t2 on t.CaptainId = t2.PlayerId

Если вы хотите исключить игроков без капитана, вы должны сделать это внутренним соединением.

Вы можете преобразовать ноль, конечно:

select t.PlayerName, isnull(t2.PlayerName,'None') as CaptainName
from #temp t
left join #temp t2 on t.CaptainId = t2.PlayerId
0 голосов
/ 19 ноября 2010
SELECT PlayerName, CaptainName 
FROM PlayerTable INNER JOIN CaptainTable
ON PlayerTable.CaptainID=CaptainTable.CaptainID
WHERE CaptainName = 'your query'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...