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 :

Doublons dans requete UNION


Sujet :

Langage SQL

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut Doublons dans requete UNION
    Bonjour à tous,

    j'ai un petit soucis avec une requete d'UNION:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT a, b, c, X FROM T1
    UNION
    SELECT a, b, c, Y FROM T2
    où a, b, c sont des champs communs aux deux requetes et X et Y sont un champ different.

    Mon problème:
    Sans les champs X et Y, les doublons sont bien eliminés, mais avec ces champs j'ai les doublons (par rapport à a, b et c).

    Est-ce qu'il y a un moyen d'eliminer ces doublons sans suprimer la colone X(et Y)?

    Merci d'avance pour votre aide

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 046
    Points
    34 046
    Billets dans le blog
    14
    Par défaut
    La réponse est quasiment dans la question !
    Si tu ne conserves qu'une ligne par triplet {a, b, c}, que vas-tu afficher ? X ou Y ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Bonjour CinePhil, merci pour ta reponse.

    En fait je n'ai pas compris
    Je voudrais garder la ligne avec le X...

    Un exemple de resultat:
    cod____nom____age____groupe
    -------------------------------
    1______marc___30_______g42
    2______greg___31
    1______marc___30
    Le truc c'est que la colone "groupe" n'existe pas dans la 2ème table, et donc je mets un ' ' pour avoir le même nombre de colones dans les deux selects...

    je voudrais (dans cet exemple), eliminer le deuxième marc, qu'est déjà present dans la liste.

    Merci encore une fois

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 239
    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 239
    Points : 12 869
    Points
    12 869
    Par défaut
    Bonjour,
    Tout est dit dans cette phrase:
    Citation Envoyé par Marc_27 Voir le message
    je voudrais (dans cet exemple), eliminer le deuxième marc, qu'est déjà present dans la liste.
    Tu ne dois prendre que les lignes de T2 qui n'ont pas d'équivalence dans T1.

    Tatayo.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Merci à toi aussi tatayo.

    J'ai fait

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT a, b, c, X FROM T1
    UNION
    SELECT a, b, c, Y FROM T2 WHERE a NOT IN (SELECT a FROM T1)

    et il semble marcher.

    En fait j'ai pensé qu'il y aurait un moyen sans avoir besoin des sous-requetes...

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

Discussions similaires

  1. Petit probleme dans requete union
    Par xatos69 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/08/2009, 11h06
  2. Doublons dans requete
    Par RougeCitron dans le forum Requêtes
    Réponses: 4
    Dernier message: 29/05/2008, 01h43
  3. Problème group by dans requete union
    Par benjisan dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 07/01/2008, 16h49
  4. Supprimer doublons dans requete
    Par fifoux dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 05/03/2007, 11h54
  5. Eviter doublon dans Requete Access 2000
    Par Soulama dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/02/2007, 10h13

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