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 :

[SQL] Requêtes imbriquées


Sujet :

Langage SQL

  1. #1
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut [SQL] Requêtes imbriquées
    Bonjour,

    Je n'ai jamais fait de requêtes imbriquées, donc je suis devant un obstacle.
    Je vais essayer de vous exposer clairement le problème.

    J'ai 2 tables: ARTICLE et NOMENC

    Dans la table NOMENC, j'ai les champs: PRODUITFINI et COMPOSANT

    Si je recherche les composants d'un produit fini PRODUITA, j'aurais:
    PRODUITA | COMPOSANT1
    PRODUITA | COMPOSANT2
    PRODUITA | COMPOSANT3
    PRODUITA | COMPOSANT4
    Dans la table ARTICLE, j'ai les désignation des produits et des composants.

    Je dois donc lier les 2 tables.
    Maintenant, lorsque je le fais, j'obtient le résultat suivant:
    PRODUITA | COMPOSANT1 | DESIGNATION_PRODUITA
    PRODUITA | COMPOSANT2 | DESIGNATION_PRODUITA
    PRODUITA | COMPOSANT3 | DESIGNATION_PRODUITA
    PRODUITA | COMPOSANT4 | DESIGNATION_PRODUITA
    Faut-il faire une requête imbriquée? Quelle solution me conseillez-vous?

    Merci d'avance.
    Xavier

  2. #2
    Membre confirmé Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Points : 481
    Points
    481
    Par défaut
    Bonjour,
    Je n'ai pas saisi le résultat que vous cherchiez à obtenir ....
    Je penche, donc je suis

  3. #3
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut
    Le résultat suivant:

    PRODUITA | COMPOSANT1 | DESIGNATION_COMPOSANT1
    PRODUITA | COMPOSANT2 | DESIGNATION_COMPOSANT2
    PRODUITA | COMPOSANT3 | DESIGNATION_COMPOSANT3
    PRODUITA | COMPOSANT4 | DESIGNATION_COMPOSANT4
    Xavier

  4. #4
    Membre confirmé Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Points : 481
    Points
    481
    Par défaut
    Visiblement une simple jointure suffira, quelle est la structure exacte de vos 2 tables et quelle requête vous donne le résultat de votre premier message ?
    Je penche, donc je suis

  5. #5
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut
    ARTICLE:
    PRODUIT (PRODUIT =produit ou un composant),
    DESIGNATION PRODUIT

    NOMENC:
    PRODUIT,
    COMPOSANT

    Actuellement ma requete ressemble à ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT NOMENC.COMPOSANT FROM NOMENC, ARTICLE 
    WHERE NOMENC.PRODUIT = ARTICLE.PRODUIT
    AND NOMENC.PRODUIT = '790500'
    Xavier

  6. #6
    Membre confirmé Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Points : 481
    Points
    481
    Par défaut
    Alors la jointure ne semble pas etre faite sur les bons champs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT ... 
    FROM NOMENC, ARTICLE 
    WHERE NOMENC.COMPOSANT = ARTICLE.PRODUIT
    AND NOMENC.PRODUIT = '790500'
    Je penche, donc je suis

  7. #7
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut
    je suis un boulet
    je me suis trompé sur le nom de mon champ

    c'est bon, ça marche.

    Merci de ton aide et de ta disponibilité.

    Bonne continuation,

    A+
    Xavier

  8. #8
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    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 080
    Points : 30 804
    Points
    30 804
    Par défaut
    Avec des jointures normalisées, ce serait encore mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT ... 
    FROM NOMENC
    INNER JOIN ARTICLE 
    ON NOMENC.COMPOSANT = ARTICLE.PRODUIT
    WHERE NOMENC.PRODUIT = '790500'
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  9. #9
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut
    Citation Envoyé par al1_24
    Avec des jointures normalisées, ce serait encore mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT ... 
    FROM NOMENC
    INNER JOIN ARTICLE 
    ON NOMENC.COMPOSANT = ARTICLE.PRODUIT
    WHERE NOMENC.PRODUIT = '790500'
    merci également, je note ça dans un coin
    Xavier

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

Discussions similaires

  1. SQL Requête imbriquée
    Par vr_brandon dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/07/2013, 13h57
  2. Réponses: 3
    Dernier message: 04/07/2008, 17h03
  3. [MySQL] Erreur SQL 1064 : Requête imbriquée avec jointure !
    Par patchankito dans le forum Langage SQL
    Réponses: 5
    Dernier message: 31/01/2006, 10h37
  4. [D2005 - Access-Sql] Comment imbriquer 4 tbles en 1 requête?
    Par Hauwke dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/11/2005, 09h44
  5. [PL/SQL]requête imbriquée
    Par Nadine dans le forum Oracle
    Réponses: 6
    Dernier message: 01/02/2005, 16h21

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