0

次のような列で設定された友人テーブルがあります。

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

4

2 に答える 2

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)
于 2013-04-24T18:39:30.603 に答える
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
)
于 2013-04-24T18:32:45.580 に答える