Bonjour,
j'ai deux tables.

users:

id
nom
prenom
email
password

friends:

id_invitation
id_exp
id_des
valide
date_invitation
date_activation

Je veux recuperer le nom et le prenom des amis communs entre deux utilisateurs.
Par example:
1,2,3 sont tous amis entre eux, c'est à dire:
1 est ami avec 2 et 3; 2 aussi est ami avec 3
Je veux recuperer 3 comme ami commun entre 1 et 2. (sachant que l'invitation peut provenir de 1 vers 2 ou de 2 vers 1).
Voilà le code que j'ai essayé mais il me retourne uniquement les amis des amis d'un utilisateur alors que je veux les amis communs.

SELECT
    U2.id,
    U2.prenom,
    U2.nom,
    U2.email,
    U2.password
FROM
    friends F1
        INNER JOIN users U1
            ON ( U1.id = F1.id_exp AND F1.id_des = 'id user connecté' )
            OR ( U1.id = F1.id_des AND F1.id_exp = 'id user connecté' )
        INNER JOIN friends F2
            ON ( U1.id = F2.id_exp AND F2.id_des <> 'id user connecté' )
            OR ( U1.id = F2.id_des AND F2.id_exp <> 'id user connecté' )
        INNER JOIN users U2
            ON U1.id = F2.id_exp
            OR U1.id = F2.id_des
WHERE
    U1.id <> 'id user connecté'
    AND F1.valide = 1
    AND F2.valide = 1

Merci.

Aucune réponse