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 :

Opérateur (+) = et jointure interne


Sujet :

SQL Oracle

  1. #1
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 102
    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 102
    Points : 28 384
    Points
    28 384
    Par défaut Opérateur (+) = et jointure interne
    Bonjour,

    Je dois reprendre des requêtes Oracle et les passer en SQL normalisé.
    Cela fait bien longtemps que je n'ai pas pratiqué les opérateurs hors norme d'Oracle.
    J'ai retrouvé ces règles de base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    select    *
    from    TMP_A    A
        ,    TMP_B    B
    where    A.CLE = B.CLE
    ;
    /* équivaut à */
    select    *
    from    TMP_A    A
        inner join
            TMP_B    B
            on    A.CLE = B.CLE
    ;
     
    select    *
    from    TMP_A    A
        ,    TMP_B    B
    where    A.CLE (+) = B.CLE
    ;
    /* équivaut à */
    select    *
    from    TMP_A    A
        right join
            TMP_B    B
            on    A.CLE = B.CLE
    ;
     
    select    *
    from    TMP_A    A
        ,    TMP_B    B
    where    A.CLE = B.CLE (+)
    ;
    /* équivaut à */
    select    *
    from    TMP_A    A
        left join
            TMP_B    B
            on    A.CLE = B.CLE
    ;
    Je suppose que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    select    *
    from    TMP_A    A
        ,    TMP_B    B
    where    A.CLE (+) = B.CLE
        and    A.VAL (+) = 'X'
    ;
    /* équivaut à */
    select    *
    from    TMP_A    A
        right join
            TMP_B    B
            on    A.CLE = B.CLE
            and    A.VAL = 'X'
    ;
    Mais je me trouve face à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select    *
    from    TMP_A    A
        ,    TMP_B    B
    where    A.CLE = B.CLE
        and    A.VAL (+) = 'X'
    ;
    Comment l'écririez vous avec jointure normalisée ?

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    INNER JOIN, le (+) ne sert à rien dans cette requete

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 102
    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 102
    Points : 28 384
    Points
    28 384
    Par défaut
    C'est bien ce qui me semblait, mais je voulais être sûr de ne pas passer à côté d'un truc tordu

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

Discussions similaires

  1. Requête mise à jour avec jointure interne
    Par joquetino dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 16/01/2008, 17h41
  2. [1.3.3] DataSet et jointure interne
    Par lazarel dans le forum iReport
    Réponses: 0
    Dernier message: 25/07/2007, 15h15
  3. sum() dans une jointure interne
    Par xenos dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/07/2007, 17h42
  4. Jointure interne mysql
    Par egho6235 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 05/04/2007, 17h29
  5. Jointure interne
    Par de LANFRANCHI dans le forum Langage SQL
    Réponses: 8
    Dernier message: 03/09/2004, 10h08

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