Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Hệ thống tình bạn Cấu trúc Sql &Truy vấn

Sử dụng:

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

Sử dụng UNION sẽ loại bỏ các bản sao. UNION ALL sẽ nhanh hơn, nhưng nó không xóa các bản sao.

Nếu bạn muốn lấy thông tin cho bạn bè từ MEMBERS bảng, sử dụng:

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:Tôi hy vọng bạn đang sử dụng mysql_escape_string trên các biến, nếu không, bạn có nguy cơ bị tấn công 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. PHP làm cách nào để kiểm tra email đã có trong cơ sở dữ liệu MySQL?

  2. Truy vấn Django ORM không chọn được đối tượng mới

  3. Thực thi nhiều truy vấn gốc trong một lần

  4. Paypal IPN Hợp lệ trong hộp cát INVALID khi phát trực tiếp

  5. Làm cách nào để tạo khóa ngoại cũng là khóa chính trong MySQL?