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 :

Jointure pouvant remplacer un MINUS


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2008
    Messages : 16
    Points : 16
    Points
    16
    Par défaut Jointure pouvant remplacer un MINUS
    Bonjour,

    J'ai actuellement ceci :

    select t1.a, t1.b, t2.c, t3.d
    from table1 t1
    inner join table2 t2
    on t1.a=t2.a
    left join table3 t3
    on t2.c=t3.c
    Ce qui me ramène une certaine quantité de données sur t1.a, t1.b, t2.c et le dernier champ t3.d pouvant être soit renseigné soit nul.


    Maintenant je voudrais ramener uniquement ces données pour t3.d is null.

    J'ai trouvé ceci : j'imbrique mes réponses dans une table globale que je scanne pour ne ramener que mes instances avec t3.d is null

    select global.a, global.b, global.c, global.d from (select t1.a, t1.b, t2.c, t3.d from table1 t1
    inner join table2 t2 on t1.a=t2.a
    left join table3 t3 on t2.c=t3.c) global where global.d is null
    Ou alors l'utilisation d'un MINUS : une première requête plus large avec un left join sur t3 puis un minus de la même requête mais dont le left join est remplacé par un inner join.

    select t1.a, t1.b, t2.c, t3.d from table1 t1
    inner join table2 t2 on t1.a=t2.a
    left join table3 t3 on t2.c=t3.c
    MINUS
    select t1.a, t1.b, t2.c, t3.d from table1 t1
    inner join table2 t2 on t1.a=t2.a
    inner join table3 t3 on t2.c=t3.c

    Ma question est : N'y a-t-il pas une façon "plus propre" d'obtenir ce résultat ?


    Merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    et WHERE t3.d is null ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2008
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Ah ouais ... c'est fou comme avec un exemple concret on comprend mieux la différence entre placer sa condition dans le "on" ou dans le "where".

    Ca marche au poil ! Merci mon p'ti chat !

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Citation Envoyé par Manlis Voir le message
    Merci mon p'ti chat !
    Haha excellent, sauf votre respect Monsieur de la Botte

  5. #5
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut

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

Discussions similaires

  1. [AC-2003] Jointure externe : remplacer les valeurs vide
    Par ElSpopo dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 28/10/2010, 11h16
  2. [Access] Jointure et remplacement sql
    Par matel dans le forum Langage SQL
    Réponses: 8
    Dernier message: 22/09/2008, 18h30
  3. Remplacer une sous-requête par une jointure
    Par MPQuatre dans le forum Requêtes
    Réponses: 6
    Dernier message: 05/12/2007, 17h28
  4. Réponses: 6
    Dernier message: 23/01/2007, 10h17
  5. Remplacer une jointure dans une requête DELETE
    Par lorant dans le forum Requêtes
    Réponses: 5
    Dernier message: 30/11/2006, 19h46

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