根据另一列从列中检索值

Mih*_*agy 3 sql t-sql sql-server self-join

从这张足球运动员的表中,你如何选择球员的名字和队长的名字?

PlayerID | PlayerName | TeamCaptainID
=====================================
1        | Jay        | 5
2        | John       | 3
3        | James      | 3
4        | Jack       | 5
5        | Jeremy     | 5
Run Code Online (Sandbox Code Playgroud)

我追求的结果是:

Player | Captain
================
Jay    | Jeremy
John   | James
James  | James
Jack   | Jeremy
Jeremy | Jeremy
Run Code Online (Sandbox Code Playgroud)

pot*_*hin 6

inner join在同一个表上应用似乎就足够了:

select t1.PlayerName as Player
     , t2.PlayerName as Captain
from tbl t1 
join tbl t2 on t1.TeamCaptainID = t2.PlayerID
Run Code Online (Sandbox Code Playgroud)