Mysql
 sql >> Base de données >  >> RDS >> Mysql

Structure et requête SQL du système d'amitié

Utiliser :

SELECT f.friend_id
  FROM FRIENDS f
 WHERE f.user_id = $user_id
UNION
SELECT t.user_id
  FROM FRIENDS t
 WHERE t.friend_id = $user_id

Utilisation de UNION supprimera les doublons. UNION ALL serait plus rapide, mais cela ne supprime pas les doublons.

Si vous souhaitez obtenir les informations pour les amis des MEMBERS tableau, utilisez :

SELECT m.*
  FROM MEMBERS m
  JOIN (SELECT f.friend_id 'user_id'
          FROM FRIENDS f
         WHERE f.user_id = $user_id
        UNION
        SELECT t.user_id
          FROM FRIENDS t
         WHERE t.friend_id = $user_id) x ON x.user_id = m.id

BTW :J'espère que vous utilisez mysql_escape_string sur les variables, sinon vous risquez des attaques par injection SQL :