Récupération de données de plusieurs colonnes à l'aide de jointures de tables SQL
Ce guide montre comment combiner efficacement les données de plusieurs tables SQL pour récupérer des informations dans différentes colonnes. Nous nous concentrerons sur la méthode INNER JOIN
, en mettant en évidence son utilisation et en abordant des considérations spécifiques à Microsoft Access.
La INNER JOIN
Méthode
Un INNER JOIN
fusionne les lignes de deux tables ou plus en fonction d'une valeur de colonne partagée. La table résultante contient uniquement les lignes pour lesquelles une correspondance existe dans toutes les tables jointes. Notre exemple implique tbl_facilitatorClasses
et tbl_facilitators
pour afficher les noms des classes et les détails des animateurs (primaire et secondaire).
Voici la requête SQL utilisant INNER JOIN
:
<code class="language-sql">SELECT tbl_facilitatorClasses.className, tbl_facilitators.facilLname AS primaryFacilitatorLname, tbl_facilitators.facilFname AS primaryFacilitatorFname, tbl_facilitatorClasses.secondFacil, tbl_facilitators.facilLname AS secondaryFacilitatorLname, tbl_facilitators.facilFname AS secondaryFacilitatorFname FROM tbl_facilitatorClasses INNER JOIN tbl_facilitators ON tbl_facilitatorClasses.primeFacil = tbl_facilitators.facilID INNER JOIN tbl_facilitators AS secondaryFacilitator ON tbl_facilitatorClasses.secondFacil = secondaryFacilitator.facilID;</code>
Remarque importante pour MS Access : parenthèses dans les jointures multiples
Dans Microsoft Access, lors de l'utilisation de plusieurs instructions INNER JOIN
, il est crucial de placer chaque jointure entre parenthèses pour garantir un ordre d'exécution correct. L'exemple ci-dessus utilise des parenthèses pour plus de clarté et pour éviter des erreurs potentielles.
Pourquoi pas UNION
?
Bien que UNION
combine verticalement les données de plusieurs tables ou sous-requêtes, cela ne convient pas à ce scénario. UNION
ajoute simplement des lignes sans les faire correspondre en fonction des valeurs de colonnes partagées, ce qui ne fournirait pas les données combinées souhaitées pour l'animateur et la classe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!