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

Requête SQL "amis d'amis"

Vous avez juste besoin d'exclure ceux qui sont des amis directs ainsi que des amis d'amis. J'ai réorganisé les alias de table pour que ce soit un peu plus clair (pour moi, en tout cas) ce qui est récupéré :

SELECT
    u.*
FROM
    user u
    INNER JOIN friend ff ON u.user_id = ff.friend_id
    INNER JOIN friend f ON ff.user_id = f.friend_id
WHERE
    f.user_id = {$user_id}
    AND ff.friend_id NOT IN
    (SELECT friend_id FROM friend WHERE user_id = {$user_id})

Cela supprime également la nécessité d'exclure l'ID utilisateur interrogé.