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 :

Bridage de la sélection autre que rownum sur clef primaire avec signe "+"


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Bridage de la sélection autre que rownum sur clef primaire avec signe "+"
    Bonjour,

    Lorsqu'on fait une jointure entre deux table il est possible de limiter le nombre de ligne avec rownum :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select c1.clef , c2.clef , c2.champtoto 
    from mabdd.c1 , mabdd.c2
    where c1.clef = c2.clef
    rownum < 1000 ;
     
    select c1.clef , c2.clef , c2.champtoto 
    from mabdd.c1 
    inner join mabdd.c2 on c1.clef = c2.clef
    rownum < 1000 ;

    Je viens de voir dans un code cette syntaxe avec (+):

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select c1.clef , c2.clef , c2.champtoto 
    from mabdd.c1 , mabdd.c2
    where c1.clef = c2.clef(+);
     
    select c1.clef , c2.clef , c2.champtoto 
    from mabdd.c1 
    inner join mabdd.c2 on c1.clef = c2.clef(+);

    Je ne vois pas vraiment l’intérêt ?

    Vous pouvez m'aiguiller ?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    C'est la syntaxe historique de la jointure externe sur Oracle Database, toujours supportée pour rétro compatibilité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select c1.clef , c2.clef , c2.champtoto 
    from mabdd.c1 , mabdd.c2
    where c1.clef = c2.clef(+);
    Est équivalent à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        select c1.clef , c2.clef , c2.champtoto 
          from mabdd.c1 
     left join mabdd.c2 on c1.clef = c2.clef;

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par Waldar Voir le message
    C'est la syntaxe historique de la jointure externe sur Oracle Database, toujours supportée pour rétro compatibilité :
    D'accord c'est bon a savoir !

    Citation Envoyé par Waldar Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select c1.clef , c2.clef , c2.champtoto 
    from mabdd.c1 , mabdd.c2
    where c1.clef = c2.clef(+);
    Citation Envoyé par Waldar Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        select c1.clef , c2.clef , c2.champtoto 
          from mabdd.c1 
     left join mabdd.c2 on c1.clef = c2.clef;
    Quelle est la requête la plus rapide du coup ?

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    La seconde syntaxe étant la version normalisée a l'avantage d'être portable.
    Mais sur Oracle en terme de performance, c'est la même chose.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je prend bonne note de l'info .

    Merci

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

Discussions similaires

  1. Recherche autre que 'EQUAL' sur une chaine de caractere
    Par nicoF86 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/06/2017, 15h34
  2. Réponses: 3
    Dernier message: 20/04/2010, 22h43
  3. Réponses: 2
    Dernier message: 06/11/2008, 15h30
  4. MAJ d'un champ d'une table avec condition sur clef primaire commune
    Par ar|equin dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 15/05/2007, 13h57
  5. Réponses: 3
    Dernier message: 01/03/2007, 14h51

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