Вывести людей, которые подписаны друг на друга

Рейтинг: 0Ответов: 3Опубликовано: 04.11.2014

Есть таблица подписчиков, user_to - поле отвечающее за пользователя, на которого подписывались, а user_from, кто подписывался. Нужно вывести людей, которые подписаны друг на друга. Буду благодарен за помощь.

Обновление

Проблема в том, что реализовать подобный запрос очень сложно, пытался выводить как из двух таблиц, но не получилось. Вот думаю, может, вы можете помочь с данной проблемой.

Ответы

▲ 2

Так без дублей будет:

select s1.user_from, s1.user_to
from subscr s1 
join subscr s2 on 
      s1.user_from = s2.user_to 
  and s1.user_to = s2.user_from 
  and s1.id<s2.id
▲ 1
SELECT DISTINCT IF (table1.user_from>table1.user_to,table1.user_from,table1.user_to) as _from,
IF (table1.user_from<table1.user_to,table1.user_from,table1.user_to) as _to
FROM table1 
JOIN table1 as t1 on table1.user_from=t1.user_to and table1.user_to=t1.user_from
▲ 1
select u1, u2 from (
select case when user_from > user_to then user_from else user_to end u1,
       case when user_from > user_to then user_to else user_from end u2
from subscr
) x group by u1,u2 having count(*) =2