В моей базе данных есть таблица, содержащая записи о дружбе.В таблице есть два столбца: user1_id и user2_id, указывающие, что user1 дружит с user2.Он настроен так, что user1_id всегда
SELECT af.1, bf.1, count(*) as count
FROM (SELECT *
FROM friends
UNION
SELECT user2_id, user1_id
FROM friends ) af,
(SELECT *
FROM friends
UNION
SELECT user2_id, user1_id
FROM friends ) bf
WHERE af.1 != bf.1
AND af.2 = bf.2
GROUP BY af.1, bf.1
ORDER BY count desc
Это должно дать мне все комбинации пользователей, отсортированных по тем, у кого самые общие друзьяТем не менее, он не пропускает кортежи, содержащие пары, которые на самом деле сами являются друзьями.Я могу сделать это в Java, но я бы предпочел сделать это на стороне базы данных.Есть ли хороший способ сделать это?