IIUC, la tabla rosterusers
es de solo lectura desde el punto de vista de su eJabberd
aplicación de servidor Esto lo simplificaría, para reemplazarlo con una view
, que crea las 2 filas necesarias de 1 fila en su propia tabla de amigos.
Al no conocer la estructura de su propia tabla de amistad, no puedo darle el código completo, pero esto es lo que consideré 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 ...
);
y luego
SELECT
username, jid, subscription, ask, server, type
FROM rosterusers
WHERE jid_as_id='[email protected]'
debería darte 2 filas, una de cada parte de UNION
en la Vista