Bonjour,

je pense avoir compris le fonctionnement d'une requête de jointure multi-table avec plusieurs join imbriqués.

Voici mon exemple:
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
 
table t_produit (
   prod_Id integer,
   prod_Libelle varchar(32)
);
 
table t_commande (
   cmd_Id integer auto_increment,
   cmd_Date date
);
 
table tj_prod_cmd (
   cmd_Id integer,
   prod_Id integer,
   qute integer,
   remise integer
);
Si je souhaite sélectionner l'id et le libellé de t_produit et l'id et la date de t_commande, je dois effectuer la requête suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
select p.*,c.* from t_produit p
   join tj_prod_cmd pc on p.prod_id=pc.prod_id
   join t_commande c on pc.cmd_id=c.cmd_id
Je pense que ma requête est bonne.
Donc je cherche à comprendre le fonctionnement de cette requête, et l'imbrication des join, c'est à dire comment le SGBD fait pour savoir que le deuxième join relie la table t_commande à la table tj_prod_cmd.
J'en suis arrivé à la conclusion suivante:
il exécute d'abord cette partie là:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
select p.*,c.* from t_produit p
   join tj_prod_cmd pc on p.prod_id=pc.prod_id
et le deuxième join est relié ainsi à la table obtenu

C bien ça ?

++