Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Struktura i zapytania systemu przyjaźni

Użyj:

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

Korzystanie z UNION usunie duplikaty. UNION ALL byłoby szybsze, ale nie usuwa duplikatów.

Jeśli chcesz uzyskać informacje dla znajomych od MEMBERS stół, użyj:

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:Mam nadzieję, że używasz mysql_escape_string na zmiennych, w przeciwnym razie ryzykujesz ataki SQL injection:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy możliwe jest zapytanie tabeli struktury drzewa w MySQL w jednym zapytaniu, na dowolną głębokość?

  2. Laravel :Niezdefiniowany indeks:kierowca

  3. Ucieczka MySQL GROUP_CONCAT

  4. Jak zdefiniować połączenie mysqli w jednym pliku php, a następnie użyć go w innym pliku?

  5. PHP :wstaw kilka wartości pól wyboru do jednej kolumny MySQL