Maison > base de données > tutoriel mysql > Comment joindre efficacement trois tables en SQL pour récupérer les informations sur les étudiants et les noms de salle ?

Comment joindre efficacement trois tables en SQL pour récupérer les informations sur les étudiants et les noms de salle ?

Patricia Arquette
Libérer: 2025-01-15 22:23:43
original
237 Les gens l'ont consulté

How to Efficiently INNER JOIN Three Tables in SQL to Retrieve Student Information and Hall Names?

SQL : combiner des données de plusieurs tables avec INNER JOIN

SQL INNER JOIN est un outil puissant permettant de combiner des informations provenant de différentes tables en fonction de valeurs partagées. Ceci est particulièrement utile lorsqu'il s'agit d'ensembles de données associés, comme le démontre cet exemple impliquant des informations sur les étudiants, les préférences des salles et les noms des salles.

Imaginez trois tableaux : un contenant les détails des étudiants, un autre avec les préférences des salles d'étudiants (représentées par des identifiants) et un troisième avec les noms de salles correspondant à ces identifiants. Pour afficher les informations sur les étudiants à côté des noms réels des salles, nous utiliserons INNER JOIN.

Voici comment gérer efficacement INNER JOIN ces trois tableaux :

<code class="language-sql">SELECT 
    s.StudentID, s.FName, s.LName, s.Gender, s.BirthDate, s.Email, 
    r.HallPref1, r.HallPref2, r.HallPref3, 
    h.HallName
FROM 
    dbo.StudentSignUp AS s
INNER JOIN 
    RoomSignUp.dbo.Incoming_Applications_Current AS r ON s.StudentID = r.StudentID
INNER JOIN 
    HallData.dbo.Halls AS h ON r.HallPref1 = h.HallID;</code>
Copier après la connexion

Cette requête fonctionne comme suit :

  1. Le premier INNER JOIN connecte StudentSignUp et Incoming_Applications_Current en utilisant StudentID comme clé commune.
  2. Le deuxième INNER JOIN relie Incoming_Applications_Current et Halls en utilisant HallPref1 (depuis la table des préférences) et HallID (depuis la table des salles).

Le résultat affichera les informations sur l'étudiant ainsi que sa première préférence de salle et son nom correspondant, par exemple :

<code>John Doe | 923423 | Incoming Student | Foley Hall</code>
Copier après la connexion

Extension de la requête pour plusieurs préférences de salle :

Pour récupérer les trois préférences de salle et leurs noms, nous pouvons étendre la requête avec des INNER JOINs supplémentaires :

<code class="language-sql">SELECT 
    s.StudentID, s.FName, s.LName, s.Gender, s.BirthDate, s.Email, 
    r.HallPref1, h1.HallName AS Pref1HallName, 
    r.HallPref2, h2.HallName AS Pref2HallName, 
    r.HallPref3, h3.HallName AS Pref3HallName
FROM 
    dbo.StudentSignUp AS s
INNER JOIN 
    RoomSignUp.dbo.Incoming_Applications_Current AS r ON s.StudentID = r.StudentID
INNER JOIN 
    HallData.dbo.Halls AS h1 ON r.HallPref1 = h1.HallID
INNER JOIN 
    HallData.dbo.Halls AS h2 ON r.HallPref2 = h2.HallID
INNER JOIN 
    HallData.dbo.Halls AS h3 ON r.HallPref3 = h3.HallID;</code>
Copier après la connexion

Cette requête améliorée rejoint la table Halls trois fois, une fois pour chaque colonne de préférences, offrant une vue complète des préférences des résidences étudiantes et de leurs noms associés.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal