sql >> Databasteknik >  >> RDS >> Mysql

Effektiv extern tjänstgöring med MySQL och ejabberd

IIUC, tabellen rosterusers är skrivskyddad från POV för din eJabberd server app. Detta skulle göra det enkelt att ersätta den med en view , som skapar de nödvändiga 2 raderna av 1 rad i din egen väntabell.

Eftersom jag inte känner till strukturen för din egen vänskapstabell kan jag inte ge dig hela koden, men här är vad jag 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 ...
);

och sedan

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

bör ge dig 2 rader, en från varje del av UNION i vyn




  1. finns det en fördel med varchar(500) framför varchar(8000)?

  2. problem med att hitta en lista över filer i katalogen

  3. Tidigare Capgemini Executive, Sunitha Ray, går med i ScaleGrid DBaaS för att utöka företagsförsäljningen

  4. MySQL-fråga för att hitta kunder som har beställt två specifika produkter