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