Bonjour,
je pense avoir compris le fonctionnement d'une requête de jointure multi-table avec plusieurs join imbriqués.
Voici mon exemple:
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
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 );
Je pense que ma requête est bonne.
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
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à:
et le deuxième join est relié ainsi à la table obtenu
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
C bien ça ?
++
Partager