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 :

Problème Jointure multiple


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2011
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2011
    Messages : 172
    Points : 88
    Points
    88
    Par défaut Problème Jointure multiple
    Bonjour Forum,

    J'ai 3 tables, tbl_roadsheet, tbl_customers, tbl_municipality.

    La table tbl_municipality sert à lister l'ensemble des municipalités de ma région et leur attribuer un ID. ON retrouve donc cette ID dans les deux autres tables. Mon problème c'est qu'il y a un ID différent pour le projet et le client, car un client à sa propre addresse et un projet également, car un client peut avoir plusieurs projets, et il est rarement à la même addresse que celle du projets. J'ai donc une addresse de livraison et une de facturation.

    je me demandais comment monter ma requête SQL pour avoir les deux minucipalités. Normalement ma requête serait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT r.contrat, c.name, m.name
                 FROM tbl_roadsheet r
                      INNER JOIN tbl_Customer c ON r.custID = c.CustID
                      INNER JOIn tbl_Municipality m ON r.municipalityID = m.municipalityID
    Je voudrais donc avoir également le nom de la municipalité lié à mon client

    Merci!

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 209
    Points : 12 794
    Points
    12 794
    Par défaut
    Boujour,
    Il suffit d'ajoute de nouveau la table tbl_Municipality dans la requête, mais avec un autre alias, et de faire une jointure avec tbl_Customer.

    Tatayo.

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2011
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2011
    Messages : 172
    Points : 88
    Points
    88
    Par défaut
    Comme ça?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT r.contrat, c.name, m.name as CustMunicipality, m.name as ProjMunicipality
                 FROM tbl_roadsheet r
                      INNER JOIN tbl_Customer c ON r.custID = c.CustID
                           INNER JOIN tbl_municipality ON c.municipalityID = m.municipalityID
                      INNER JOIN tbl_Municipality m ON r.municipalityID = m.municipalityID
    Mais comment SQL sait que le premier m.name est sur le client et l'autre sur le projet??

    Merci!

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 209
    Points : 12 794
    Points
    12 794
    Par défaut
    Il ne sait pas, car dans ta requête, c'est le même !
    C'est pour celà que j'ai précisé "avec un autre alias" !

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select t1.id,t2.id,t3.id
    from table1 t1
    inner join table2 t2 on t1.champ1 = t2.id
    inner join table2 t3 on t1.champ2 = t3.id


    Tatayo.

  5. #5
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2011
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2011
    Messages : 172
    Points : 88
    Points
    88
    Par défaut
    Parfais merci!!

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

Discussions similaires

  1. Problème avec jointures multiples.
    Par Veritas5 dans le forum Développement
    Réponses: 3
    Dernier message: 05/06/2009, 15h42
  2. [SQL2005][TSQL]Problème de jointures multiples
    Par Veritas5 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/03/2009, 17h04
  3. Problème Jointures multiples
    Par masseur dans le forum Langage SQL
    Réponses: 9
    Dernier message: 20/03/2008, 19h53
  4. Problème de jointure multiple
    Par Max_be dans le forum Langage SQL
    Réponses: 1
    Dernier message: 13/10/2007, 21h39
  5. problème requête à jointure multiple...
    Par Ricardo_Tubbs dans le forum Access
    Réponses: 6
    Dernier message: 09/02/2006, 16h45

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