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 :

Recherche doublons 'inverse'


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Recherche doublons 'inverse'
    Bonjour,

    Je n'ai pas trouvé de réponse à cette question en parcourant rapidement les différents sujets, mais j'espère que je ne vais pas créer de double.

    Je voudrais savoir comment faire trouver des "doublons inverses" dans une table.
    Par exemple avec une table comme ca:

    a | b
    -----
    1 | 2
    3 | 4
    2 | 1
    2 | 2

    je voudrais un résultat qui m'indique pour chaque ligne si dans cette table il existe au moins une ligne pour laquelle la valeur de a correspond à celle de b et inversement comme par exemple:

    a | b | exist
    -------------
    1 | 2 | 1
    3 | 4 | 0
    2 | 1 | 1
    2 | 2 | 0

    Merci.

    Jenny.

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 910
    Points
    38 910
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    La réponse est quasiment dans votre question

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select col1, col2, .. coln
    from tableA TA
    where exists
         (select 1 from tableB TB
          where TB.col1 = TA.col2
            and TB.col2 = TA.col1)
    order by ...
    Edit : si vous voulez afficher aussi les lignes sans correspondance, utilisez un case
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    select col1, col2, 
           case when exists
               (select 1 from tableB TB
                where TB.col1 = TA.col2
                  and TB.col2 = TA.col1)
                then 1
                else 0
                end as machin
    from tableA TA
    order by ...
    Par contre, dans votre exemple, [2, 2] doit renvoyer 1 et non zéro

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci escartefigue pour cette réponse rapide

    En effet je souhaite aussi récupérer les lignes sans correspondances ^^
    Et je me suis mal exprimée, je voulais dire au moins une autre ligne avec les valeurs inverses, ce qui exclurait la ligne 2|2.

    En fait ma table représente une relation entre deux personnes, et il se peut que qu'il y ai une ligne qui indique: père -> fils et une autre qui indique fils -> père (pour les deux mêmes personnes) et je veux pouvoir ne traiter qu'une fois une relation qui est représentée dans les deux sens.

    Je vais voir si je peux adapter ma requête avec votre réponse.

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

Discussions similaires

  1. recherche doublons et suppression
    Par huître dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/06/2011, 10h02
  2. [XL-2010] recherche automatique sur moteurs de recherches -- doublon d'execution
    Par thirdeye dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 17/08/2010, 18h59
  3. Recherche doublons sur list
    Par rumpeballe dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/08/2008, 23h54
  4. Recherche doublons entre 2 champs
    Par zenzolarticho dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/07/2007, 09h52
  5. [Oracle 8i]Recherche doublon sur une même table
    Par fmoriet dans le forum Oracle
    Réponses: 3
    Dernier message: 01/08/2006, 10h09

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