MYSQL Выбор возвратно-поступательных данных? - PullRequest
1 голос
/ 07 июня 2011

У меня есть таблица с именем Follow, с тремя полями:

  • Id (автоинкремент int),
  • UserId (int),
  • Подписка (int)

Если у меня есть такие данные:

ID    UserId    Following   
--------------------------
1       2          3
2       3          2
3       2          5
4       2          6
5       3          5

Как мне найти друзей пользователя 2 (то есть: пользователь 2 следует за ними, а они следуют за пользователем 2)

Я думаю, другими словами, если пользователь 'a' следует за пользователем 'b', а пользователь 'b' следует за пользователем 'a', как выбрать пользователя A ??

Ответы [ 2 ]

4 голосов
/ 07 июня 2011

Попробуйте это:

SELECT a.UserId, a.Following
  FROM Follow a INNER JOIN Follow b
    ON a.UserId = b.Following
   AND b.UserId = a.Following
1 голос
/ 07 июня 2011
select f1.UserId
from Follow f1
join Follow f2 on f2.Following = f1.UserId and f2.UserId = f1.Following
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...