sql >> Base de Datos >  >> RDS >> Mysql

Consulta SQL 'amigos de amigos'

Solo necesita excluir a los que son amigos directos además de ser amigos de amigos. He reorganizado los alias de la tabla para que sea un poco más claro (para mí, de todos modos) lo que se está recuperando:

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

También elimina la necesidad de excluir el ID de usuario que se consulta.