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>
Cette requête fonctionne comme suit :
INNER JOIN
connecte StudentSignUp
et Incoming_Applications_Current
en utilisant StudentID
comme clé commune.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>
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 JOIN
s 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>
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!