SIO1 – SI3 Manipulation des données2015 Travailler avec plusieurs tables Repérer la colonne charnière : elle contient la même donnée dans les 2 tables 2 façons de raisonner : 1 – joindre les 2 tables sur la colonne charnière 2 – imbriquer les requêtes et rechercher l’égalité sur la colonne charnière
SIO1 – SI3 Manipulation des données2015 Travailler avec plusieurs tables On veut afficher toutes les données sur les produits
SIO1 – SI3 Manipulation des données2015 Joindre plusieurs tables RefProdNomProdtypeProd 564Chou Fleur2 565Carotte2 566Tulipes1 567Roses1 NumTypeNomType 1Fleur 2Légume PRODUITTYPE PRODUIT RefProdNomProdNomType 564Chou FleurLégume 565CarotteLégume 566TulipesFleur 567RosesFleur Dans la logique si on colle (on joint) les 2 tables
SIO1 – SI3 Manipulation des données2015 La jointure RefProdNomProdtypeProd 564Chou Fleur2 565Carotte2 566Tulipes1 567Roses1 NumTypeNomType 1Fleur 2Légume PRODUITTYPEPRODUIT RefProdNomProdtypeProdNumTypeNomType 564Chou Fleur22Légume 565Carotte22Légume 566Tulipes11Fleur 567Roses11Fleur SELECT * FROM PRODUIT, TYPEPRODUIT WHERE typeProd = NumType;
SIO1 – SI3 Manipulation des données2015 JOINTURE + projection + restriction RefProdNomProdtypeProdNumTypeNomType 564Chou Fleur22Légume 565Carotte22Légume 566Tulipes11Fleur 567Roses11Fleur SELECT * FROM PRODUIT, TYPEPRODUIT WHERE typeProd = NumType; On raisonne avec projection et restriction comme si on avait une grande table SELECT NomProd, NomType FROM PRODUIT, TYPEPRODUIT WHERE typeProd = NumType AND RefProd = 565 OR RefProd = 566; NomProdNomType CarotteLégume TulipesFleur
SIO1 – SI3 Manipulation des données2015 Travailler avec plusieurs tables On veut afficher les produits qui sont des légumes
SIO1 – SI3 Manipulation des données2015 Imbriquer les requêtes RefProdNomProdtypeProd 564Chou Fleur2 565Carotte2 566Tulipes1 567Roses1 NumTypeNomType 1Fleur 2Légume PRODUITTYPE PRODUIT RefProdNomProd 564Chou Fleur 565Carotte SELECT NomProd, NomType FROM PRODUIT WHERE typeProd = (SELECT NumType FROM TYPEPRODUIT WHERE nomType = ‘Légume’);