Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment obtenir une liste d'amis communs

En supposant qu'il n'est pas possible pour l'utilisateur 1 d'être ami avec l'utilisateur 7 deux fois, (ce qui signifie qu'il ne peut pas y avoir de ligne avec user_a = 1, user_b=7 et une autre ligne 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