Double jointure sur les deux mêmes tables

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Double jointure sur les deux mêmes tables

Re: Double jointure sur les deux mêmes tables

par nicolas » 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 ?

Double jointure sur les deux mêmes tables

par Pieerrre » 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