Double jointure sur les deux mêmes tables

Pieerrre
Invité n'ayant pas de compte PHPfrance

11 févr. 2013, 20:35

Bonjour à tous, voici mon petit soucis :
J'ai deux tables :

Articles -> user_id_user, titre, id_moderateur(le moderateur qui a approuvé l'article)...

Users -> id _user, nom, prenom...

J'ai une requête de base qui lie les deux table entre user_id_user = id_user.

J'aimerai maintenant savoir si dans cette meme requête je peut récupérer le prénom du moderateur sachant que l'id(id_moderateur) est differente de l'id du posteur(user_id_user)

J'ai essayé ca mais ca mouline et ne trouve rien... :
SELECT i*, u.pseudo_user, cc.pseudo_user as pseudo_moderateur
 
    FROM items i
 
    INNER JOIN user u ON i.user_id_user=u.id_user
 
    INNER JOIN user as cc ON i.id_moderateur=u.id_user
Quelqu'un aurait il une idée ? Merci beaucoup

Eléphant du PHP | 353 Messages

12 févr. 2013, 10:24

Il faut utiliser un alias différent :
SELECT i*, u1.pseudo_user, cc.pseudo_user AS pseudo_moderateur
    FROM items i
    LEFT JOIN user u1 ON i.user_id_user=u1.id_user
    LEFT JOIN user u2 AS cc ON i.id_moderateur=u2.id_user
Une remarque :
es-tu sûr d'avoir besoin de jointures naturelles ? Une jointure à gauche (left join) ne serait-elle pas suffisante ?