2016-09-07 3 views
0

У меня есть одна таблица для запроса друга со статусом как ожидающий, принятый или отклоненный, как получить моих друзей из этой таблицы? enter image description heremysql получить друзей из одной таблицы

Я после этого один, но он возвращает свой собственный идентификатор, т.е. 43

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) 

Я хочу, чтобы получить идентификатор пользователя 42 и 41, пожалуйста, помогите !!! Большое спасибо.

+0

Хороший снимок экрана, но где ваш код, который вы уже пробовали? – Blake

+0

Вы вообще что-то пробовали? Где вы застряли? Для создания SQL-запросов доступно много учебников. – David

+0

Простой запрос MYSQL будет SELECT (requestFromUserId, RequestTouserId, status, created_at, updated_at) FROM TABLE_NAME WHERE requestFromUserId = 42 ИЛИ reqestFromUserId = 41' , но не зная, где вы хотите данные, я не знаю, как помочь вам больше , Вы используете PDO или MYSQLI или что ..? – Lynne

ответ

1

Использовать условие IF в инструкции select, чтобы найти friend_user_id.

select 
IF(@myid = requestFromUserId,requestToUserId,requestFromUserId) as friend_user_id 
from friends 
where (requestFromUserId = @myid or requestToUserId = @myid) and status = 'accepted' 
+0

он возвращает мой собственный id 43 дважды –

+0

Ohh Yeah .. Это была моя ошибка. Пожалуйста, проверьте обновленный ответ. Если условие должно быть IF (@myid = requestFromUserId, requestToUserId, requestFromUserId) вместо IF (@myid = requestFromUserId, requestFromUserId, requestToUserId) –

+0

Спасибо, чувак !!! его рабочий штраф. –

Смежные вопросы