Mysql
 sql >> Database >  >> RDS >> Mysql

query SQL "amici di amici".

Devi solo escludere quelli che sono amici diretti oltre ad essere amici di amici. Ho riorganizzato gli alias della tabella in modo che sia un po' più chiaro (per me, comunque) cosa viene recuperato:

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})

Elimina anche la necessità di escludere l'ID utente richiesto.