SQL работи в таблици. По дефиниция таблицата има куп редове, всеки от които има еднакви колони като всеки друг. Вашето запитване ще даде набор от резултати, който дублира информацията на клиента за всеки курс, който е взела.
Вашият презентационен слой ще форматира тази таблица, като забележи първия ред на всеки нов клиент и разбие заглавката на клиента. Ще направите това в php или Java или Crystal Reports или друга подобна презентационна технология.
Вашето запитване е нещо подобно.
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 прави добра гледна точка относно клопката от използването на USING()
. Ето същата заявка за 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