这是我在Sql中的好友表
我需要一个查询来给我所有朋友的用户ID,我写了这个查询但它选择了所有行而不是所有ID
SELECT * from Friend_Table
where (SenderID=@ID and ReqStatus='True')
or
ReciverID=@ID and ReqStatus='True')
我的问题是用户ID可以是senderID或reciverID,我只需要返回一个列!
MY输出表格如下:
答案 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)
另外,正确的拼写实际上是“接收者”。