Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL-Abfrage „Freunde von Freunden“.

Sie müssen nur diejenigen ausschließen, die sowohl direkte Freunde als auch Freunde von Freunden sind. Ich habe die Tabellenaliase neu angeordnet, damit es (zumindest für mich) etwas klarer ist, was abgerufen wird:

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

Außerdem entfällt die Notwendigkeit, die abgefragte Benutzer-ID auszuschließen.