IIUC, de tabel rosterusers
is alleen-lezen van de POV van uw eJabberd
server-app. Dit zou het eenvoudig maken om het te vervangen door een view
, dat maakt de benodigde 2 rij van 1 rij in je eigen vriendentabel.
Omdat ik de structuur van je eigen vriendschapstabel niet ken, kan ik je niet de volledige code geven, maar dit is wat ik dacht aan 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 ...
);
en dan
SELECT
username, jid, subscription, ask, server, type
FROM rosterusers
WHERE jid_as_id='[email protected]'
zou je 2 rijen moeten geven, één uit elk deel van de UNION
in de weergave