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

Tăng cường hiệu quả bên ngoài với MySQL và ejabberd

IIUC, bảng rosterusers là chỉ đọc từ POV của eJabberd của bạn ứng dụng máy chủ. Điều này sẽ làm cho nó trở nên đơn giản, thay thế nó bằng một view , điều đó tạo ra 2 hàng trong số 1 hàng cần thiết trong bảng bạn bè của riêng bạn.

Không biết cấu trúc của bảng tình bạn của riêng bạn, tôi không thể cung cấp cho bạn mã đầy đủ, nhưng đây là những gì tôi nghĩ là SQL giả

CREATE VIEW rosterusers AS SELECT * FROM (
    SELECT 
        selfuser.name AS username, 
        frienduser.jid AS jid,
        -- ....,
        selfuser.jid AS jid_as_id
    FROM
        users AS selfuser
        INNER JOIN friendships ON ....
        INNER JOIN users AS frienduser ON ...
    UNION SELECT 
        frienduser.name AS username, 
        selfuser.jid AS jid,
        -- ....,
        frienduser.jid AS jid_as_id
    FROM
        users AS selfuser
        INNER JOIN friendships ON ....
        INNER JOIN users AS frienduser ON ...
);

và sau đó

SELECT
    username, jid, subscription, ask, server, type
FROM rosterusers
WHERE jid_as_id='[email protected]'

sẽ cung cấp cho bạn 2 hàng, một hàng từ mỗi phần của UNION trong Chế độ xem




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON_QUOTE () - Cách thoát các ký tự trong chuỗi được sử dụng làm giá trị JSON trong MySQL

  2. Làm thế nào để xử lý việc lưu trữ khổng lồ các bản ghi trong cơ sở dữ liệu cho mục đích ủy quyền người dùng?

  3. Kết nối với mysql trong vùng chứa docker từ máy chủ

  4. MySQL một câu lệnh để hợp nhất hai bảng

  5. Cập nhật nhiều hàng trong một truy vấn MySQL duy nhất