Maison >base de données >tutoriel mysql >Jointure interne ou union dans Microsoft Access : quand dois-je utiliser chacune pour récupérer des données de plusieurs tables ?

Jointure interne ou union dans Microsoft Access : quand dois-je utiliser chacune pour récupérer des données de plusieurs tables ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-15 08:57:44312parcourir

Inner Join vs. Union in Microsoft Access: When Should I Use Each to Retrieve Data from Multiple Tables?

Récupération de données Microsoft Access : scénarios d'application d'INNER JOIN et UNION

Dans une base de données Microsoft Access, vous devrez peut-être récupérer des données de plusieurs tables avec des relations associées. Ceci peut être réalisé avec INNER JOIN ou UNION, la méthode que vous choisissez dépend de vos besoins spécifiques.

INNER JOIN (connexion interne)

INNER JOIN est utilisé pour récupérer des enregistrements avec des lignes correspondantes de plusieurs tables, en fonction de critères spécifiés. Par exemple, vous devez récupérer les données des tables tbl_facilitators et tbl_facilitatorClasses, en fonction respectivement des colonnes primeFacil et secondFacil.

INNER JOIN utilise le mot-clé ON pour spécifier les conditions de correspondance. Voici un exemple de requête :

<code class="language-sql">SELECT tbl_facilitatorClasses.className,
    tbl_facilitators.facilLname, tbl_facilitators.facilFname
FROM tbl_facilitatorClasses
INNER JOIN tbl_facilitators
ON tbl_facilitatorClasses.primeFacil = tbl_facilitators.facilID;</code>

Cette requête récupère le nom du cours, le nom de famille et le prénom de l'instructeur principal pour les enregistrements dont la valeur tbl_facilitatorClasses dans primeFacil correspond à la valeur tbl_facilitators dans facilID.

UNION

UNION combine les résultats de deux requêtes ou plus en un seul ensemble de résultats. Dans cet exemple, vous utilisez UNION pour récupérer séparément les données des conseillers principal et secondaire. Cependant, vous devez combiner manuellement les résultats pour créer le résultat souhaité.

Solution

Afin de récupérer les données du conseiller principal et secondaire dans le format souhaité, plusieurs INNER JOIN sont nécessaires. La requête dans la solution que vous avez fournie est correcte :

<code class="language-sql">SELECT tblCLS.className,
    tblP.facilLname, tblP.facilFname, tblS.facilLname, tblS.facilFname
FROM (tbl_facilitatorClasses AS tblCLS
INNER JOIN tbl_facilitators AS tblP
ON tblCLS.primeFacil=tblP.facilID)
INNER JOIN tbl_facilitators AS tblS
ON tblCLS.secondFacil=tblS.facilID;</code>

Cette requête utilise des parenthèses pour entourer le premier INNER JOIN afin de garantir le bon ordre des opérations et en faisant correspondre les colonnes tbl_facilitatorClasses et primeFacil de secondFacil à la colonne tbl_facilitators de facilID pour récupérer la sortie requise pour les conseillers primaires et secondaires.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn