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 :

jointure : quelle table de gauche définir ?


Sujet :

Langage SQL

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Points : 201
    Points
    201
    Par défaut jointure : quelle table de gauche définir ?
    Bonjour,

    J'essaye d'optimiser mes requetes et une question se pose.
    Quand on a plusieurs elements de différentes tables à rechercher. Quelle table doit-on mettre dans le FROM ?

    Merci :=)

  2. #2
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bonjour,

    Peu importe la table citée en première.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT Table1.Nom, Table2.Nom
    FROM Table1
    JOIN Table2
    ON Table1.id = Table2.id;

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Sauf en cas de jointure externe

  4. #4
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    Tout à fait d'accord avec les deux réponses.

    Petite précision :
    Le choix de l'ordre de jointure est effectué par l'optimiseur de ton SGBD.
    Il évalue le coût des différentes possibilités, puis retient celle qui coûte le moins cher.

    D'un point de vue logique, tu peux en simplifiant abusivement (en fait, c'est juste l'un des crières d'évaluation) te dire qu'en mettant à gauche la table qui renverra le moins de ligne, ça peut être mieux (dans le cas où tu as un index sur la clef de jointure).

    Enfin, selon le SGBD, tu peux forcer l'ordre de jointure. Sous oracle, le hint serait par exemple /*+ ORDERED a b */

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Points : 201
    Points
    201
    Par défaut
    Ah ok....


    Merci pour vos réponses ...

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

Discussions similaires

  1. Jointure de table avec Interbase
    Par ada_b dans le forum InterBase
    Réponses: 21
    Dernier message: 12/05/2010, 19h52
  2. Jointure : savoir de quelle table viennent les données
    Par anonyme! dans le forum Requêtes
    Réponses: 6
    Dernier message: 04/01/2009, 11h46
  3. Réponses: 1
    Dernier message: 03/03/2008, 20h19
  4. Réponses: 9
    Dernier message: 20/09/2005, 17h18
  5. requete(jointure 2 tables) qui marche pas
    Par DaxTaz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/06/2004, 17h50

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