IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

2 left join sur le meme table [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2007
    Messages : 7
    Points : 10
    Points
    10
    Par défaut 2 left join sur le meme table
    Bonjour à tous

    J' ai 3 tables, cat ,vile ,pays

    les champs de table cat : id_cat , Leb_cat
    les champs de table pays : id_pays, leb_pays
    les champs de table ville :id_ville,id_pays,leb_ville,cat1,cat2

    chaque ville peu avoir de catégorie cat1 et cat 2
    pour afficher tous les ville avec leurs pays et catégorie j ai ecrire la requête :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT ville.id_ville, pays.leb_pays AS pays, ville.leb_ville, cat.Leb_cat AS `cat1` , cat.Leb_cat AS `cat2` 
    FROM ville
    LEFT JOIN pays ON pays.id_pays = ville.id_pays
    LEFT JOIN cat AS `cat1` ON cat.id_cat = ville.cat1 
    LEFT JOIN cat AS `cat2` ON cat.id_cat = ville.cat2
    me renvoie évidemment l' erreur suivante : Champ 'cat.Leb_cat' inconnu dans field list

    Comment faire pour afficher ce que je veux ?

    Mille mercis par avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    tu utilises les alias cat1 et cat2 pour deux choses différentes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat1.Leb_cat AS `leb_cat1` , cat2.Leb_cat AS `leb_cat2`

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2007
    Messages : 7
    Points : 10
    Points
    10
    Par défaut
    merci pour la reponse
    le code sera donc :

    SELECT ville.id_ville, pays.leb_pays AS pays, ville.leb_ville ,cat1.Leb_cat AS `leb_cat1` , cat2.Leb_cat AS `leb_cat2`
    FROM ville
    LEFT JOIN pays ON pays.id_pays = ville.id_pays
    LEFT JOIN cat AS `cat1` ON cat.id_cat = ville.cat1
    LEFT JOIN cat AS `cat2` ON cat.id_cat = ville.cat2

    me renvoie évidemment l' erreur suivante : Champ 'cat.id_cat' inconnu dans on clause

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    la modification est la meme, il faut utiliser cat1 ou cat2 dans ton ON, pas cat

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2007
    Messages : 7
    Points : 10
    Points
    10
    Par défaut re
    donc sera
    SELECT ville.id_ville, pays.leb_pays AS pays, ville.leb_ville, cat1.Leb_cat AS `leb_cat1` , cat2.Leb_cat AS `leb_cat2`
    FROM ville
    LEFT JOIN pays ON pays.id_pays = ville.id_pays
    LEFT JOIN cat AS `cat1` ON cat1.id_cat = ville.cat1
    LEFT JOIN cat AS `cat2` ON cat2.id_cat = ville.cat2

    ca marche grand merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. INNER JOIN sur la meme table
    Par fikovic30 dans le forum Développement
    Réponses: 8
    Dernier message: 08/05/2013, 15h58
  2. LEFT JOIN sur une même table
    Par grinder59 dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/01/2012, 15h30
  3. Requete avec inner join sur une meme table
    Par mattmax dans le forum Développement
    Réponses: 1
    Dernier message: 15/12/2011, 14h34
  4. Double OUTER JOIN sur la meme table?
    Par nabab dans le forum Requêtes
    Réponses: 2
    Dernier message: 04/01/2008, 18h48
  5. 2 LEFT JOIN sur une même table
    Par dakan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/10/2007, 13h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo