SQL menangani dalam tabel. Menurut definisi tabel memiliki sekelompok baris, yang masing-masing memiliki kolom yang sama satu sama lain. Kueri Anda akan menghasilkan kumpulan hasil yang menduplikasi informasi klien untuk setiap kursus yang dia ambil.
Lapisan presentasi Anda akan memformat tabel itu, dengan memperhatikan baris pertama dari setiap klien baru dan memisahkan header klien. Anda akan melakukannya di php atau Java atau Crystal Reports atau teknologi presentasi semacam itu.
Permintaan Anda seperti ini.
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 membuat poin bagus tentang perangkap menggunakan USING()
. Ini adalah kueri yang sama pada 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