Привет, я пытаюсь выяснить, как я могу получить общих друзей
В настоящее время у них возникают проблемы с этим.
У меня есть таблица под названием «пользователи», и вот как она выглядит
id | name ----------- 1 Kenny 2 Jack 3 Jimmy 4 Chris 5 Meg 6 Jake 7 Micheal 8 Dude
У меня есть таблица под названием «дружба», и вот как она выглядит
user_a | user_b ---------------- 4 1 7 5 8 1 2 4 2 1 5 2 1 6 1 7
user_a отправляет user_b запрос стать друзьями и … BAM есть друзья. Теперь, если im user 2, и я перехожу в список друзей пользователя 1s, я хочу посмотреть, какие у нас общие друзья. Каков правильный sql для этого?
Предполагая, что пользователь 1 не может дружить с User 7 дважды (это означает, что не может быть строка с user_a = 1, user_b=7
и другая строка user_a = 7, user_b = 1
).
SELECT IF(user_a = 1 OR user_a = 2, user_b, user_a) friend FROM friendship WHERE (user_a = 1 OR user_a = 2) OR (user_b = 1 OR user_b = 2) GROUP BY 1 HAVING COUNT(*) > 1