Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment formuler une requête pour afficher tous les cours suivis par une personne

Offres SQL dans les tables. Par définition, une table a un tas de lignes, chacune ayant les mêmes colonnes les unes que les autres. Votre requête va produire un ensemble de résultats qui duplique les informations du client pour chaque cours qu'il a suivi.

Votre couche de présentation va formater ce tableau, en remarquant la première ligne de chaque nouveau client et en décomposant l'en-tête du client. Vous ferez cela en php ou Java ou Crystal Reports ou une telle technologie de présentation.

Votre requête ressemble à ceci.

    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 fait un bon point sur le piège de l'utilisation de USING() . Voici la même requête sur 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