如何使用Sql Query获取Friends UniqID

时间:2014-10-11 10:05:04

标签: sql sql-server database

这是我在Sql中的好友表 enter image description here

我需要一个查询来给我所有朋友的用户ID,我写了这个查询但它选择了所有行而不是所有ID

    SELECT * from Friend_Table
 where (SenderID=@ID and ReqStatus='True')
  or
    ReciverID=@ID and ReqStatus='True')

我的问题是用户ID可以是senderID或reciverID,我只需要返回一个列!

MY输出表格如下:

enter image description here

1 个答案:

答案 0 :(得分:1)

您需要在select子句中选择相反的ID。您可以将两个查询合并在一起,也可以使用case语句来选择:

(注意,未经测试的代码)

select
    case when SenderID=@ID then ReciverID else SenderID end as OtherPersonID
from
    Friend_Table
where
    ReqStatus='True'
    and (SenderID=@ID or ReciverID=@ID)

作为工会:

select ReciverID as OtherPersonID from Friend_Table where (ReqStatus='True' and SenderID=@ID)
union
select SenderID as OtherPersonID from Friend_Table where (ReqStatus='True' and ReciverID=@ID)

另外,正确的拼写实际上是“接收者”。