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

Langage SQL Discussion :

probleme avec jointure sur meme table


Sujet :

Langage SQL

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    857
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 857
    Points : 267
    Points
    267
    Par défaut probleme avec jointure sur meme table
    Bonjour,

    j'ai un problème avec la requete suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    select client.nom as rs,civil.lib|| ' '|| client.contact_prenom || ' '|| client.contact_nom as client_patro ,
    cmdcli.cf,article.codeb,article.codeh,article.ref,items.op,items.wkliv,
    civil.lib|| ' '||  fournisseur.contact_prenom || ' '||  fournisseur.contact_nom as four_patro,
    fournisseur.nom,cmdfou.ac,cmdfou.datecmd,cmdfou.qtecmd,cmdfou.dateliv_th,cmdfou.dateliv_conf,
    cmdfou.daterel1,cmdfou.daterel2,cmdfou.rel1,cmdfou.rel2 from cmdfou
    join fournisseur on fournisseur.four_id=cmdfou.four_id
    join civil on civil.civ_id=fournisseur.civil_id
    join items on items.items_id=cmdfou.items_id
    join cmdcli on cmdcli.cmdcli_id=items.cmdcli_id
    join client on client.cli_id=cmdcli.cli_id
    join civil on civil.civ_id=client.civil_id
    join article on article.arti_id=items.arti_id
    order by items.wkliv
    elle me sort l'erreur suivante:
    Ambiguous field name between table CIVIL and table CIVIL .CIV_ID.
    j'ai l'impression que cela vient des 2 jointures sur la table CIVIL ?
    Si je supprime une des 2 lignes en gras , la requête fonctionne.
    Est ce possible de faire une jointure 2 fois sur meme table ?

    merci

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 110
    Points : 28 438
    Points
    28 438
    Par défaut
    C'est possible en effet, à condition de donner un nom d'alias à au moins l'une des deux occurrences de la table dans la requête.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Bonjour,

    Oui c'est possible, donnez des alias différents à vos tables.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    join civil C1 on C1.civ_id=fournisseur.civil_id
    join civil C2 on C2.civ_id=client.civil_id

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    D'ailleurs, pour la lisibilité de la requête, je préfère mettre systématiquement des alias quand il y a plus de deux tables dans une requête (ou deux instances de la même table évidemment !) .

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

Discussions similaires

  1. Delete avec jointure sur deux tables
    Par cecilebh dans le forum SQL
    Réponses: 10
    Dernier message: 28/03/2011, 17h10
  2. Requête SELECT avec jointure sur deux tables
    Par bud64 dans le forum Requêtes
    Réponses: 6
    Dernier message: 01/10/2010, 14h06
  3. Requete SQL avec jointure sur trois tables
    Par pit2121 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 19/05/2008, 23h07
  4. Requête SQL avec jointure sur trois tables
    Par pit2121 dans le forum SQL
    Réponses: 0
    Dernier message: 19/05/2008, 20h24
  5. jointure sur meme table
    Par edenyorke dans le forum Hibernate
    Réponses: 10
    Dernier message: 11/06/2007, 14h36

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