2014-09-01 66 views
-1

我有两个表,即tblUsertblForward有以下的列:从另一个表获取的用户名到包含两个字段的表,其具有用户ID

tblUser

UserID    
Username 

tblForward

ForwardID  
ForwardedToUserID (--> tblUser.UserID) 
ForwardedFromUserID (--> tblUser.UserID) 

现在我想要做的是当我从tblForward获取数据时,使用ForwardedToUserIDForwardedFromUserID和显示Username(而不是UserID)从tblUser获取Username

我该怎么做?

+2

您需要使用“加入”。尝试搜索“sql join”作为开始。 – Blorgbeard 2014-09-01 04:24:21

回答

0

IN OP做的要连接ForwardedToUserID and ForwardedFromUserID

select max(Fromuser),max(ToUser) from (
    select UserName as Fromuser, '' as ToUser from tblUsers A 
    inner join tblForward B ON A.UserID = B.ForwardedToUserID 
    union all 
    select '' as Fromuser, UserName as ToUser from tblUsers A 
    inner join tblForward B ON A.UserID = B.ForwardedFromUserID) as t 
+0

好吧,我会试试这个... – 2014-09-01 04:35:57

+0

这给出了一个名称列表,但我如何确定哪个用户转发到用户名和哪个用户名被转发? – 2014-09-01 05:37:59

+0

@TashiTobgay现在检查它 – Sathish 2014-09-01 05:50:52

-1

你需要使用join statement

SELECT A.UserName from tblUsers A 
inner join tblForward B on 
    A.UserID = B.ForwardedToUserID 
    OR A.UserID = B.ForwardedFromUserID 
+0

我想从tblForward中获取数据,现在它在'ForwardedToUserID'和'ForwardedFromUserID'中给了我UserID。当我从tblForward获取数据时,我想显示名称和其他数据。 – 2014-09-01 04:32:38

+0

@TashiTobgay,我注意到你添加了** c#**标签,你是否面临将你的选择结果导入应用程序的问题,还是它是一个选择语句问题?请澄清您的问题,以避免反对票,添加相关代码,并指出您的问题 – simsim 2014-09-01 04:35:20

0

我建议你:

SELECT A.UserName, B.UserName AS ForwardedToUserName, C.UserName AS ForwardedFromUserName 
FROM tblUsers A 
    INNER JOIN tblForward B ON A.UserID = B.ForwardedToUserID 
    INNER JOIN tblForward C ON A.UserID = C.ForwardedFromUserID 

,因为它返回相关的用户名对于所有用户的

+0

谢谢,这会从tblUsers中获取用户名和相关的用户名。现在我如何将这个用户名与从tblForward中获取的数据结合起来? – 2014-09-01 05:16:09

相关问题