Offres SQL dans les tables. Par définition, une table a un tas de lignes, chacune ayant les mêmes colonnes les unes que les autres. Votre requête va produire un ensemble de résultats qui duplique les informations du client pour chaque cours qu'il a suivi.
Votre couche de présentation va formater ce tableau, en remarquant la première ligne de chaque nouveau client et en décomposant l'en-tête du client. Vous ferez cela en php ou Java ou Crystal Reports ou une telle technologie de présentation.
Votre requête ressemble à ceci.
SELECT a.id, a.name, a.address, a.etc,
c.Name
FROM Clients a
JOIN CoursesForClients b USING(ClientID)
JOIN Courses c USING(CourseID)
ORDER BY a.id, c.CourseID
@Strawberry fait un bon point sur le piège de l'utilisation de USING()
. Voici la même requête sur ON
.
SELECT a.id, a.name, a.address, a.etc,
c.Name
FROM Clients a
JOIN CoursesForClients b ON a.ClientID = b.ClientID
JOIN Courses c ON b.CourseID = c.CourseID
ORDER BY a.id, c.CourseID