IIUC, die Tabelle rosterusers
ist aus dem POV Ihres eJabberd
schreibgeschützt Server-App. Dies würde es einfach machen, es durch eine view
zu ersetzen , das erzeugt die benötigten 2 Zeilen aus 1 Zeile in deiner eigenen Freundestabelle.
Da ich die Struktur Ihrer eigenen Freundschaftstabelle nicht kenne, kann ich Ihnen nicht den vollständigen Code geben, aber hier ist, was ich mir als Pseudo-SQL vorgestellt habe
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 ...
);
und dann
SELECT
username, jid, subscription, ask, server, type
FROM rosterusers
WHERE jid_as_id='[email protected]'
sollte Ihnen 2 Zeilen geben, eine von jedem Teil der UNION
in der Ansicht