2013-04-24 2 views
0

그래서,이 같은 열이 설정된 친구의 테이블이 있습니다.MySQL의 친구 테이블 쿼리

내가 필요한 것은 모든 친구 ID의 목록을 가져올 쿼리입니다. 문제는 요청을 보낸 사람에 따라 ID가 요청자 또는 요청자에있을 수 있다는 것입니다.

간단한 방법이 있어야한다고 생각하지만 복수 if을 수행하지 않고서는 이해할 수 없습니다.

문제 해결에 도움을 주셔서 감사합니다.

+0

'yourTable에서 requester_user_id을 선택 = TRUE '를 설립,이 작업은 아니다? –

+0

물건은 내가 요청하지 않거나 요청한 사람이 필요합니다. 나는 내 ID를 안다. 다른 ID가 필요해. –

답변

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 
) 
+0

그게 내 것이 아니라 다른 사람들의 ID 목록을 원한다는 것입니다. –

+1

@ J.P .: 다른 * 사람의 ID를 반환합니다. 요청 ** ed **가 \ @myid와 일치 할 때 요청의 조합입니다. 그 반대의 경우도 마찬가지입니다. –

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) 
+0

케이스 문을 사용하여 +1 좋은 답변! –

+0

마치 작동 할 것 같습니다. 나는 MySQL의 사례 진술을 알지 못했다 : D 나는 기회가있는 한 빨리 시도 할 것이다. 고마워, 나는 티가 어떻게 작동하는지 알려줄거야. –