Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

consulta SQL 'amigos de amigos'


Você só precisa excluir aqueles que são amigos diretos, além de serem amigos de amigos. Eu reorganizei os aliases da tabela para que fique um pouco mais claro (para mim, de qualquer maneira) o que está sendo recuperado:
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})

Também elimina a necessidade de excluir o ID do usuário que está sendo consultado.