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

'venners venner' SQL-forespørgsel

Du skal bare udelukke dem, der er direkte venner såvel som at være venner-af-venner. Jeg har omarrangeret tabelaliasserne, så det er lidt klarere (ihvertfald for mig), hvad der hentes:

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

Det fjerner også behovet for at ekskludere det bruger-id, der forespørges på.



  1. mysql:vælg alle elementer fra tabel A, hvis de ikke findes i tabel B

  2. SQL Server 2008 kan ikke logge på med nyoprettet bruger

  3. Mysql-syntaksen virker korrekt

  4. Beskedsystemdatabaseskema