SQL handler i tabeller. Per definition har en tabel en række rækker, som hver har de samme kolonner som hinanden. Din forespørgsel vil give et resultatsæt, der dublerer kundens oplysninger for hvert kursus, hun tog.
Dit præsentationslag vil formatere denne tabel ved at lægge mærke til den første række af hver ny klient og bryde klientoverskriften ud. Du vil gøre det i php eller Java eller Crystal Reports eller en sådan præsentationsteknologi.
Din forespørgsel er noget som denne.
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 gør en god pointe om faldgruben ved at bruge USING()
. Her er den samme forespørgsel på 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