Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So formulieren Sie eine Abfrage, um alle von einer Person besuchten Kurse anzuzeigen

SQL befasst sich mit Tabellen. Per Definition hat eine Tabelle eine Reihe von Zeilen, von denen jede die gleichen Spalten wie die andere hat. Ihre Abfrage wird einen Ergebnissatz liefern, der die Informationen des Kunden für jeden Kurs, den er belegt hat, dupliziert.

Ihre Präsentationsebene wird diese Tabelle formatieren, indem sie die erste Zeile jedes neuen Clients bemerkt und die Client-Kopfzeile aufteilt. Sie werden das in PHP oder Java oder Crystal Reports oder einer ähnlichen Präsentationstechnologie tun.

Ihre Abfrage sieht in etwa so aus.

    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 macht einen guten Punkt über die Fallstricke bei der Verwendung von USING() . Hier ist die gleiche Abfrage auf 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