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

SQL Oracle Discussion :

Dédoublonnage sur jointure


Sujet :

SQL Oracle

  1. #1
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut Dédoublonnage sur jointure
    Bonjour,

    Voila je developpe une petite application sous Android et j'ai un problème très bête sur une requète. Seulement je ne vois pas comment je vais pouvoir m'en sortir...

    Donc j'ai une table A qui contient ceci :

    Id | name
    10 | André
    11 | Raymond
    12 | Fréderic

    Et j'ai une table B qui contient ceci :

    id_A | id_cat
    10 | 4
    10 | 6
    10 | 7
    11 | 3
    11 | 6
    12 | 7
    12 | 2

    Je voudrais réaliser une requète SQL qui exclus certains enregistrement, de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT A.id, A.name FROM A
    LEFT JOIN B ON B.id_A = A.id
    WHERE id_cat NOT IN (2,3)
    ORDER BY A.name ASC;
    Vous l'aurez compris, une personne peut entrer dans une ou plusieurs catégories. Si j'envoie la requête ci dessus, les lignes qui contiennent 2 et 3 dans l'id_cat ne remonte pas, mais les autres si.
    Cela me donne ce résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        10   |   André
        10   |   André
        10   |   André
        11   |   Raymond
        12   |   Fréderic
    Je voudrais pouvoir exclure des résultats 11 et 12...
    Bien evidemment si je mets un DISTINCT sur le A.id, je retrouve avec 3 lignes...
    En gros je voudrais que seul André remonte car il n'a pas d'id_cat à 2 ou a 3.

    Y a t-il un moyen compatible avec SQLite de faire ceci ?

    En vous remerciant par avance
    Cadoudal56
    LMN24 - Site d'actualité internationale multilingue
    http://www.lmn24.com

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 777
    Points : 52 753
    Points
    52 753
    Billets dans le blog
    5
    Par défaut
    C'est du simple SQL.... Postez dans le forum SQL !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT A.id, A.name 
    FROM   A 
    WHERE  NOT EXISTS(SELECT *
                      FROM   B
                      WHERE  B.id_A = A.id
                        AND  id_cat IN (2,3))
    ORDER  BY name ASC;
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Aide sur jointure externe
    Par viny dans le forum Langage SQL
    Réponses: 5
    Dernier message: 01/09/2006, 16h51
  2. [Débutant] Aide sur jointure
    Par chapron dans le forum Langage SQL
    Réponses: 1
    Dernier message: 31/08/2006, 23h00
  3. [MYSQL] Question sur jointure
    Par LE NEINDRE dans le forum Requêtes
    Réponses: 4
    Dernier message: 17/10/2005, 11h46
  4. select sur plusieurs table, question sur jointure
    Par Schulman dans le forum Langage SQL
    Réponses: 7
    Dernier message: 03/09/2004, 13h54

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