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 :

joindre deux tables créées par requêtes


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 86
    Points : 62
    Points
    62
    Par défaut joindre deux tables créées par requêtes
    Bonjour,

    Voici mon problème : aux deux premières étapes (voir ci-dessous) j'ai fait des requêtes qui me permettent d'avoir en commun le matricule du personnel et normalement pour chaque matricule, l'id_province devrait être égal au nom_province de la deuxième table.

    J'aimerais bien créer une requête qui me désigne les personnes qui n'ont pas le id_province et le nom_province les mêmes pour un même matricule.
    Je me suis renseigné sur les jointures mais j'y vois pas trop clair...
    Sauriez-vous m'aider ?

    Un grand merci d'avance.


    1) On recherche le nom de la province où le personnel travaille
    SELECT id_province, matricule
    FROM personnel

    2) On recherche le nom de la province pour tous les péages manuels
    SELECT nom_province, matricule
    FROM provinces, comprendre, historique_travail, noeuds
    WHERE noeuds.type_noeud = "M"
    AND historique_travail.num_peage = noeuds.num_noeud
    AND provinces.id_province = comprendre.id_province


    3) on compare les matricules des résultats des requêtes précédentes et il faut que le nom et l'id de la province soit le même.

    ???

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 849
    Points : 52 975
    Points
    52 975
    Billets dans le blog
    6
    Par défaut
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT *
    FROM   (SELECT id_province, matricule
            FROM personnel) AS T1
           INNER JOIN (SELECT nom_province, matricule
                       FROM provinces, comprendre, historique_travail, noeuds
                       WHERE noeuds.type_noeud = "M" 
                         AND historique_travail.num_peage = noeuds.num_noeud 
                         AND provinces.id_province = comprendre.id_province) AS T2
                 ON T1.id_province = T2.nom_province
                    AND T1.matricule = T2.matricule
    Cepandant j'attire votre attention sur votre seconde requête qui me parait délirante car elle fait des produits cartésiens (absence de jointures).
    Si vous utilisiez des JOIN (fortement conseillé) cela vous suaterais aux yeux !

    Voic votre requête bancale et vous pouvez constater qu'il manuque une jointure entre les tables proviences/comprendre et historique_travail / noeuds.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT nom_province, matricule
    FROM   provinces
           INNER JOIN comprendre         ON provinces.id_province = comprendre.id_province
           INNER JOIN historique_travail ON ???
           INNER JOIN noeuds             ON historique_travail.num_peage = noeuds.num_noeud
    WHERE noeuds.type_noeud = "M"
    A +

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 86
    Points : 62
    Points
    62
    Par défaut
    Merci pour votre réponse !

    Ca m'a permis d'y vois plus clair avec les joints et j'ai su faire les liens entre les différentes tables...

    C'est vraiment gentil à vous d'avoir pu m'aider !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/09/2009, 13h30
  2. Réponses: 4
    Dernier message: 24/07/2007, 12h12
  3. [REQUETE] Configuration de la table créée par une requete
    Par NiKoTiNe dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 08/05/2007, 08h37
  4. Inersert dans une table crée par les cardinalités [*,*]
    Par drasalmed dans le forum Langage SQL
    Réponses: 2
    Dernier message: 06/05/2007, 18h27
  5. [D7-ACCESS-ADO] Joindre deux tables
    Par dleu dans le forum Bases de données
    Réponses: 6
    Dernier message: 25/11/2006, 14h16

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