IIUC, la table rosterusers
est en lecture seule depuis le POV de votre eJabberd
application serveur. Cela simplifierait les choses, pour le remplacer par une view
, qui crée les 2 lignes nécessaires sur 1 ligne dans votre propre table d'amis.
Ne connaissant pas la structure de votre propre table d'amitié, je ne peux pas vous donner le code complet, mais voici ce que j'ai pensé en tant que 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 ...
);
puis
SELECT
username, jid, subscription, ask, server, type
FROM rosterusers
WHERE jid_as_id='[email protected]'
devrait vous donner 2 lignes, une de chaque partie de l'UNION
dans la vue