Offerte SQL nelle tabelle. Per definizione una tabella ha un mucchio di righe, ognuna delle quali ha le stesse colonne l'una dell'altra. La tua richiesta produrrà un set di risultati che duplica le informazioni del cliente per ogni corso che ha seguito.
Il tuo livello di presentazione formatterà quella tabella, notando la prima riga di ogni nuovo client e suddividendo l'intestazione del client. Lo farai in php o Java o Crystal Reports o qualche tecnologia di presentazione simile.
La tua domanda è qualcosa del genere.
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 sottolinea bene la trappola dell'utilizzo di USING()
. Ecco la stessa domanda su 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