Mysql
 sql >> база данни >  >> RDS >> Mysql

Ефективен външен списък с MySQL и ejabberd

IIUC, таблицата rosterusers е само за четене от POV на вашия eJabberd сървърно приложение. Това ще направи лесно да го замените с view , което създава необходимите 2 реда от 1 ред в собствената ви таблица с приятели.

Без да знам структурата на вашата собствена таблица за приятелство, не мога да ви дам пълния код, но ето какво смятах за псевдо-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 ...
);

и след това

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

трябва да ви даде 2 реда, по един от всяка част на UNION в изгледа




  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?

  2. Актуализирайте mysql таблицата на всеки двадесет и четири часа автоматично

  3. Как мога да преброя броя на редовете, върнати от MySQL заявка?

  4. Какво е решението за използване на динамичен SQL в съхранена процедура

  5. Грешка при зареждане на модула MySQLdb и инсталиране на pip MySQLdb