sql >> Database teknologi >  >> RDS >> Mysql

Effektiv ekstern vagtplanlægning med MySQL og ejabberd

IIUC, tabellen rosterusers er skrivebeskyttet fra POV'en på din eJabberd server app. Dette ville gøre det nemt at erstatte det med en view , der opretter de nødvendige 2 rækker ud af 1 række i din egen vennetabel.

Da jeg ikke kender strukturen af ​​din egen venskabstabel, kan jeg ikke give dig den fulde kode, men her er, hvad jeg tænkte på som 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 ...
);

og derefter

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

skulle give dig 2 rækker, en fra hver del af UNION i visningen




  1. Sådan ændres tabelkantstilen i psql-forespørgselsresultaterne

  2. mysql-procedure for at opdatere numerisk reference i tidligere rækker, når en er opdateret

  3. MySQL LOAD_FILE returnerer NULL

  4. Dårlige vaner :Fokuserer kun på diskplads, når du vælger nøgler