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

Wydajny zewnętrzny harmonogram dzięki MySQL i ejabberd

IIUC, tabela rosterusers jest tylko do odczytu z POV twojego eJabberd aplikacja serwera. Ułatwiłoby to zastąpienie go view , który tworzy potrzebne 2 wiersze z 1 wiersza we własnej tabeli znajomych.

Nie znając struktury twojej własnej tabeli przyjaźni, nie mogę podać pełnego kodu, ale oto, co pomyślałem o 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 ...
);

a potem

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

powinien dać 2 wiersze, po jednym z każdej części UNION w widoku




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql:czy można 'SUM JEŻELI' lub 'LICZ JEŻELI'?

  2. Jak zmienić wielkość liter w nazwie bazy danych w MySQL?

  3. Dopasowywanie całych słów ze znakami kropki w MySQL

  4. Prześlij na varchar

  5. Jak uzyskać najnowszy rekord w każdej grupie za pomocą GROUP BY?