Когда у меня есть таблица users
:Mysqli запроса для подсчета количества общих друзей
id | login
1 Mike
2 Janet
3 Bruce
И у меня есть таблица дружбы под названием friendlist
:
id | user | friend
1 1 2 // Mike is friend with Janet
2 2 1 // Janet accepted, created the friendship!
3 1 3 // Mike is friend with Bruce
4 3 1 // Bruce accepted!
Теперь Майк друзья, Janet имеет , Bruce имеет .
Какой запрос выполнить, чтобы подсчитать количество таких друзей?
Это не домашнее задание. Я боролся с этим часами, не в силах это сделать.
Запрос, который работает для меня, но возвращает неверные результаты (больше друзей, чем на самом деле):
SELECT `users`.`id`, `login`, COUNT(`a`.`id`)
FROM `users`
LEFT JOIN(
SELECT user AS `id` FROM `friendlist`
UNION ALL
SELECT friend FROM `friendlist`
) as `a` ON `a`.`id` = `users`.`id`
GROUP BY `users`.`id`