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 :

Différentes syntaxes SQL + Questions


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 36
    Par défaut Différentes syntaxes SQL + Questions
    Bonjour,

    utilisant l'ancienne syntaxe de SQL lorsqu'on faisait une jointure sur de nombreuses tables on faisait :

    code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * FROM table1, table2, table3....
    WHERE table1.idx=table2.idy
    AND table2.idz=table3.ida
    AND...
    il n'y avait pas vraiment de notion de table racine

    Mais suite à un article de sqlpro dont voici un bout :

    code :
    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
    SELECT *
    FROM   T_CLIENT CLI                      -- le client (racine de l'arbre)
           JOIN T_ADRESSE ADR                -- adresse, table d'entité (feuille de l'arbre)
                ON CLI.CLI_ID = ADR.CLI_ID
           JOIN T_TITRE TIT                  -- titre, table d'entité (feuille de l'arbre)
                ON CLI.TIT_CODE = TIT.TIT_CODE
           JOIN T_EMAIL EML                  -- mail, table d'entité (feuille de l'arbre)
                ON CLI.CLI_ID = EML.CLI_ID
           JOIN T_TELEPHONE TEL              -- téléphone, table d'entité servant de jointure (noeud dans l'arbre)
                ON CLI.CLI_ID = TEL.CLI_ID
                JOIN T_TYPE TYP              -- type de téléphone, table d'entité  (feuille de l'arbre)
                     ON TEL.TYP_CODE = TYP.TYP_CODE
          JOIN TJ_CHB_PLN_CLI CPC            -- table de jointure (noeud dans l'arbre) 
               ON CLI.CLI_ID = CPC.CLI_ID
               JOIN T_PLANNING PLN           -- date du planning, table d'entité (feuille de l'arbre)...
    ...........
    je me pose les questions suivantes :

    dans la syntaxe moderne de sql, lorsqu'on écrit :

    code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT field1, field2, field3
    FROM first_table
    INNER JOIN second_table
    ON first_table.keyfield = second_table.foreign_keyfield
    INNER JOIN third_table
    ON third.keyfield = second_table.foreign_keyfield
    la position de first_table a t'elle une importance ? (A part pour les left et right jointures)
    On aurait pu aussi bien commencer par
    SELECT field1, field2, field3 FROM second_table
    et obtenir le même résultat. Non ?
    Si c'est correct, cette nouvelle syntaxe me parait moins logique que l'ancienne, qu'en pensez-vous ?

    Autre question : quand on fait des jointures sur x table, est-il correct d'annoncer qu'il faut x-1 conditions de jointure ? (sauf exception)

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Par défaut
    La position n'a pas d'importance si ce n'est pour une relecture plus logique et facile.

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 134
    Par défaut
    L'ordre des jointures n'a aucune importance... si l'optimiseur du SGBD est performant
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    say
    say est déconnecté
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut
    Citation Envoyé par MICHEL_R Voir le message
    Si c'est correct, cette nouvelle syntaxe me parait moins logique que l'ancienne, qu'en pensez-vous ?
    moi , je ne suis pas d'accord...je trouve cela beaucoup plus logique et lisible.
    et même si l'ordre a peu d'importance, construire la requête autour d'une table central a un côté très pratique pour formaliser le problème et les jointures.

    moi, ça m'aide à visualiser en tout cas.

    par ailleurs, sur ton exemple, ce ne sont que des INNER JOIN...pour le coup, je pense que l'ordre aurait carrément de l'importance avec des LEFT JOIN...

    enfin si je ne m'abuse...

Discussions similaires

  1. Petite question de syntaxe SQL
    Par PopolDal dans le forum HyperFileSQL
    Réponses: 3
    Dernier message: 24/05/2012, 07h18
  2. Questions à propos des différentes syntaxes de JSP
    Par tweetysat dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 08/02/2012, 20h11
  3. question bete de syntaxe SQL
    Par gui-llaume dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/11/2007, 09h44
  4. syntax sql spéciale pour postgresql ???
    Par krimson dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 05/05/2004, 15h23
  5. requete syntaxe sql
    Par tomm dans le forum Bases de données
    Réponses: 4
    Dernier message: 29/04/2004, 16h56

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