如何从表格中获取数据
问题描述:
我必须从下面提到的表格结构中选择球员名称,队长名称。如何从表格中获取数据
表结构如下。
创建表#TEMP(Playerid INT,PlayerName为varchar(100),CaptainId INT)
PlayerId PlayerName CaptainId
--------------------------------------
1 Dhoni NULL
2 Sachin 1
3 Rahul 1
我必须从这个表他的队长的名字一起选择的球员的名字。 有谁能够
答
有不同的方法来得到这个查询类似的答案:
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
答
假设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
答
您可以使用自联接和表的别名。
喜欢的东西
SELECT p.PlayerName,
c.PlayerName CaptainName
FROM #temp p LEFT JOIN
#temp c ON p.CaptainId = c.PlayerId
答
SELECT PlayerName, CaptainName
FROM PlayerTable INNER JOIN CaptainTable
ON PlayerTable.CaptainID=CaptainTable.CaptainID
WHERE CaptainName = 'your query'
+0
你误解了这个问题。只有1个表 - #temp。自加入是必需的。 – RPM1984 2010-11-19 09:07:28
+0
他可能不想要一个内部联接,这会省略没有队长的队员 – 2010-11-19 09:11:48
萨钦应该是#1。 :) – RPM1984 2010-11-19 09:06:10
是的,你是对的) – 2010-11-19 09:10:56