sql >> Database >  >> RDS >> Mysql

Vriendschapssysteem Sql Structuur &Query

Gebruik:

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

UNION gebruiken zal duplicaten verwijderen. UNION ALL zou sneller zijn, maar het verwijdert geen duplicaten.

Als je de informatie voor de vrienden wilt krijgen van de MEMBERS tafel, gebruik:

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:ik hoop dat je mysql_escape_string gebruikt op de variabelen, anders riskeert u SQL-injectie-aanvallen:



  1. DISTINCT voor slechts één kolom

  2. MySQL wiskundige functies (volledige lijst)

  3. Schrijf een MySQL-query om het vereiste resultaat te krijgen

  4. PostgreSQL:Wijzig OWNER op alle tafels tegelijk in PostgreSQL