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)