Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Daftar nama eksternal yang efisien dengan MySQL dan ejabberd

IIUC, tabel rosterusers hanya-baca dari POV eJabberd Anda aplikasi server. Ini akan membuatnya sederhana, untuk menggantinya dengan view , yang membuat 2 baris dari 1 baris yang dibutuhkan di tabel teman Anda sendiri.

Tidak mengetahui struktur tabel pertemanan Anda sendiri, saya tidak dapat memberikan kode lengkapnya, tetapi inilah yang saya anggap sebagai pseudo-SQL

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 ...
);

lalu

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

akan memberi Anda 2 baris, satu dari setiap bagian UNION di Tampilan




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dua kunci utama ditentukan dalam database MySQL

  2. Menggunakan Database Relasional MySQL di Fedora 20

  3. Mengirim data ke Database di aplikasi web React.js

  4. Menggunakan SUM pada data FLOAT

  5. Arti dari Pilih tabel yang dioptimalkan di MySQL Jelaskan rencana