Informatique


Jointures(1-n)(1-n)

Objectifs
Sélectionner des tuples dans des tables jointes par une relation (1-n)(1-n)

Utilisation et exemple

On utilise les jointures lorsque l'on veut sélectionner des champs sur plusieurs tables qui sont mises en relation.

Soit les tables professeur, diplome et possede que nous avons utilisées pour la requête d'insertion (1-n)(1-n):

Le MCD:

Le MLD:

professeur: id_pro, nom_pro, preno_pro, daten_pro
diplome: id_dip, nom_dip
possede: id_pro, id_dip

Si nous voulons afficher les nom et diplome(s) des professeurs nous allons utiliser les jointures.

Les jointures internes

  • on précise d'abord les champs que l'on veut récupérer, ils peuvent provenir des trois tables
  • from: de la première table, possede dans notre cas
  • inner join: jointe à la deuxième table, professeur dans notre cas
  • on: sur le critère: l'égalité entre les id_pro des 2 tables
  • inner join: jointe à la troisème table, diplome dans notre cas
  • on: sur le critère: l'égalité entre les id_dip des 2 tables

$req = " select nom_pro, nom_dip
from  possede PO
inner join professeur P
on PO.id_pro= P.id_pro
inner join diplome D
on PO.id_dip = D.id_dip
order by P.nom_pro asc
";

La table utilisée comme base de la jointure est en général (ce n'est pas obligatoire) la table résultant de la relation (1-n)(1-n), la table possede dans notre cas.

Les jointures externes

voir les jointures (1-1)(1-n)