MySQL好友表查询

时间:2013-04-24 18:28:57

标签: mysql

我有一个朋友表设置了这样的列:

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,我就无法弄明白。

2 个答案:

答案 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
)