## Контекст (таблицы и пример данных) ### Таблицы - `follows(user_id, follows_user_id)` ### Пример
SQL Developer
Senior
## Контекст (таблицы и пример данных)
### Таблицы
- `follows(user_id, follows_user_id)`
### Пример данных
**follows**
| user_id | follows_user_id |
|-------:|-----------------:|
| 1 | 2 |
| 2 | 1 |
| 1 | 3 |
---
## Задача
Найти пары пользователей, у которых подписка взаимная.
Вернуть: `user_a`, `user_b` (где `user_a < user_b`).
Ответы
```sql
SELECT LEAST(f1.user_id, f1.follows_user_id) AS user_a,
GREATEST(f1.user_id, f1.follows_user_id) AS user_b
FROM follows f1
JOIN follows f2
ON f2.user_id = f1.follows_user_id
AND f2.follows_user_id = f1.user_id
WHERE f1.user_id < f1.follows_user_id
GROUP BY 1, 2;
```