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

Struttura e query del sistema di amicizia Sql

Usa:

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

Usando UNION rimuoverà i duplicati. UNION ALL sarebbe più veloce, ma non rimuove i duplicati.

Se vuoi ottenere le informazioni per gli amici dai MEMBERS tabella, usa:

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

A proposito:spero che tu stia usando mysql_escape_string sulle variabili, altrimenti rischi attacchi SQL injection: