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

MS SQL Server Discussion :

Débutant : INNER JOIN triple le résultat ?


Sujet :

MS SQL Server

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Points : 254
    Points
    254
    Par défaut Débutant : INNER JOIN triple le résultat ?
    Bonjour à tous ...
    J'ai 2 Tables : Article (Art_ID,ArtNom,Fam_INT,etc...) et Famille (Fam_ID,FamNom,etc...)

    La commande :
    "SELECT ArtNom FROM Article WHERE ArtNom= '%" & MaChaine & "%'"
    me renvoi le résultat escompté
    Ma Chaine = "RIF" me renvoi par ex
    "TRIFECTA"
    "747/RIFT"

    Par contre la commande :
    "SELECT ArtNom, FamNom
    FROM Article INNER JOIN Famille
    ON Article.Fam_INT = Famille.Fam_ID
    WHERE ArtNom= '%" & MaChaine & "%'"
    me renvoi un bon resultat mais triplé ???
    Ma Chaine = "RIF" me renvoi par ex
    "TRIFECTA" / "Famille 1"
    "747/RIFT" / "Famille 2"
    "TRIFECTA" / "Famille 1"
    "747/RIFT" / "Famille 2"
    "TRIFECTA" / "Famille 1"
    "747/RIFT" / "Famille 2"

    Après avoir créé une vue directement dans l'ide, la commande :
    "SELECT * FROM MaVue WHERE ArtNom= '%" & MaChaine & "%'"
    me renvoi le même résultat triplé ???

    Merci de me venir en aide ...

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Points : 406
    Points
    406
    Par défaut
    Je pense qu'en rajoutant un DISTINCT au SELECT ton problème sera résolu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT DISTINCT ArtNom, FamNom
    FROM Article INNER JOIN Famille
    ON Article.Fam_INT = Famille.Fam_ID
    WHERE ArtNom= '%'+@MaChaine+'%'

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Points : 254
    Points
    254
    Par défaut
    Je n'ai toujours pas compris le pourquoi de la chose mais effectivement ca marche ...
    1000 merci a toi Madinico et ... Kenavo

  4. #4
    Expert éminent
    Homme Profil pro
    Big Data / Freelance EURL
    Inscrit en
    Mars 2003
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Big Data / Freelance EURL

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 124
    Points : 7 291
    Points
    7 291
    Par défaut
    Citation Envoyé par Madinico Voir le message
    Je pense qu'en rajoutant un DISTINCT au SELECT ton problème sera résolu.
    Argl! Hérétique !

    C'est la pire façon d'utiliser le DISTINCT qui masque dans ce cas un problème.

    Ce problème peut avoir deux causes. Ou bien un problème de modélisation, ou bien tout simplement une jointure incomplète qui provoque un produit cartésien.

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

Discussions similaires

  1. [MySQL-5.5] INNER JOIN résultats erronés
    Par mquisuisje dans le forum MySQL
    Réponses: 3
    Dernier message: 14/04/2015, 14h13
  2. Exclure résultat d'un INNER JOIN
    Par Misoss dans le forum Requêtes
    Réponses: 7
    Dernier message: 12/09/2013, 01h45
  3. Réponses: 2
    Dernier message: 21/05/2012, 11h08
  4. [MySQL] pas de résultat sur requete INNER JOIN 3 tables
    Par monlou dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 31/08/2010, 09h49
  5. [AC-2007] Obtenir le contraire du résultat avec "Inner Join"
    Par Tipstitou dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 18/12/2009, 12h11

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