我有一个朋友表设置了这样的列:
requester_user_id //the user initiating the request
requested_user_id //the user responding to the request
established //bool, true is 'these two are friends'
我还有其他一些专栏,但它们对于这个问题并不重要。
我需要的是一个查询,它会获取所有朋友ID的列表。问题是,您的ID可能是请求者或请求者,具体取决于发起请求的人。
我觉得必须采用一种简单的方法,但如果不进行多次if
,我就无法弄明白。
答案 0 :(得分:2)
一种方式:
select distinct
case requester_user_id
when @myid then requested_user_id
else requester_user_id
end id
from friends
where @myid in (requester_user_id, requested_user_id)
答案 1 :(得分:1)
SELECT distinct id from (
SELECT requested_user_id as id FROM friends where requester_user_id = @myid
UNION
SELECT requester_user_id as id FROM friends where requested_user_id = @myid
)