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 :

distinct .. y a t il pas des doublons dans mabase ?


Sujet :

Langage SQL

  1. #1
    Membre du Club Avatar de zin_rbt
    Inscrit en
    Février 2007
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 68
    Points : 45
    Points
    45
    Par défaut distinct .. y a t il pas des doublons dans mabase ?
    je consulte constamment le résultat d'une requête SQL mais souvent je constate des doublons,pour y remédier on introduit le fameux 'DISTINCT'.

    je me demande si une requête 'mal écrite' peut générer de telles erreurs. DISTINCT ne camoufle pas une discordance et duplication des données de la base ? et comment m'assurer de la cohérence des données sur la base?

  2. #2
    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 801
    Points
    30 801
    Par défaut
    Tout dépend de la requête et des données qu'elle retourne.

    Si les lignes retournées devaient être uniques par définition, il y a en effet des doublons. Sinon, c'est la concordance des informations qui t'affiche des lignes semblables.

    Exemple : Une table d'adresses dans laquelle il devrait y avoir une seule adresse par personne (idPersonne, numéro, rue, code_postal, ville).
    Si ta requête retourne toutes les colonnes et qu'une ligne apparait plusieurs fois, il y a bien des doublons dans la table.
    En revanche, si tu affiches seulement rue, code_postal et ville, il n'est pas impossible que plusieurs personnes habitent dans la même rue et donc que la même ligne apparaisse plusieurs fois dans la requête ; sans pour autant qu'il y ait des doublons dans la table...
    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.

  3. #3
    Membre du Club Avatar de zin_rbt
    Inscrit en
    Février 2007
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 68
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    Tout dépend de la requête et des données qu'elle retourne.

    Si les lignes retournées devaient être uniques par définition, il y a en effet des doublons. Sinon, c'est la concordance des informations qui t'affiche des lignes semblables.

    Exemple : Une table d'adresses dans laquelle il devrait y avoir une seule adresse par personne (idPersonne, numéro, rue, code_postal, ville).
    Si ta requête retourne toutes les colonnes et qu'une ligne apparait plusieurs fois, il y a bien des doublons dans la table.
    En revanche, si tu affiches seulement rue, code_postal et ville, il n'est pas impossible que plusieurs personnes habitent dans la même rue et donc que la même ligne apparaisse plusieurs fois dans la requête ; sans pour autant qu'il y ait des doublons dans la table...
    d'accord.
    et l'utilisation des jointures surtout les jointures externes est ce qu'elle peut générer un tel problème ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    et l'utilisation des jointures surtout les jointures externes est ce qu'elle peut générer un tel problème ?
    Oui si tu as oublié un critère de de jointure.
    Il ne faut utiliser le mot clé Distinct que quand tu sais pourquoi tu as des doublons. Si tu sais pourquoi, il y en a pas de soucis ; mais si tu ne sais pas, il y a des chances que tu aies "merdé" dans tes jointures, et il vaut mieux que tu cherches. Et j'ai l'impression que c'est ton cas, tu ne sais pas pourquoi tu mets distinct, et là ce n'est pas forcément sain.
    Pour trouver d'où vient le doublon, tu supprimes petit à petit une table et les critères de jointures associée, puis une autre, et tu executes tes requêtes au fur et à mesure.

    A+
    Soazig

  5. #5
    Membre du Club Avatar de zin_rbt
    Inscrit en
    Février 2007
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 68
    Points : 45
    Points
    45
    Par défaut
    Bonsoir,


    Citation Envoyé par soazig Voir le message
    Bonjour,

    Oui si tu as oublié un critère de de jointure.
    Il ne faut utiliser le mot clé Distinct que quand tu sais pourquoi tu as des doublons. Si tu sais pourquoi, il y en a pas de soucis ; mais si tu ne sais pas, il y a des chances que tu aies "merdé" dans tes jointures, et il vaut mieux que tu cherches. Et j'ai l'impression que c'est ton cas, tu ne sais pas pourquoi tu mets distinct, et là ce n'est pas forcément sain.
    Pour trouver d'où vient le doublon, tu supprimes petit à petit une table et les critères de jointures associée, puis une autre, et tu exécutes tes requêtes au fur et à mesure.

    A+
    Soazig
    tout a fait,je dois comprendre ce qui ne marche pas dans cette requête.

    Merci pour le conseil.

Discussions similaires

  1. [EXCEL] Mise en évidence des doublons dans une colonne
    Par dacid dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 30/10/2006, 19h14
  2. comment eviter des doublons dans un sous formulaire ??
    Par azde7015 dans le forum Access
    Réponses: 2
    Dernier message: 21/02/2006, 09h03
  3. [Collections]Supprimer des doublons dans une ArrayList
    Par emie31 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/12/2005, 15h15
  4. Prbleme de liaison avec des doublons dans le fichier lié.
    Par krak70 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/10/2005, 11h03
  5. Eliminer des Doublon dans une Table
    Par Soulama dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/02/2005, 14h27

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