SQL nabídky v tabulkách. Podle definice má tabulka spoustu řádků, z nichž každý má stejné sloupce jako každá druhá. Váš dotaz poskytne sadu výsledků, která duplikuje klientské informace pro každý kurz, který absolvovala.
Vaše prezentační vrstva zformátuje tuto tabulku tak, že si všimne prvního řádku každého nového klienta a rozdělí hlavičku klienta. Uděláte to v php nebo Javě nebo Crystal Reports nebo nějaké takové prezentační technologii.
Váš dotaz je něco takového.
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 dobře poukazuje na úskalí používání USING()
. Zde je stejný dotaz na 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