Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да формулираме заявка, за да покажем всички курсове, взети от дадено лице

SQL работи в таблици. По дефиниция таблицата има куп редове, всеки от които има еднакви колони като всеки друг. Вашето запитване ще даде набор от резултати, който дублира информацията на клиента за всеки курс, който е взела.

Вашият презентационен слой ще форматира тази таблица, като забележи първия ред на всеки нов клиент и разбие заглавката на клиента. Ще направите това в php или Java или Crystal Reports или друга подобна презентационна технология.

Вашето запитване е нещо подобно.

    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 прави добра гледна точка относно клопката от използването на USING() . Ето същата заявка за 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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. проблем с дъмпа на mysql

  2. Задаването на PDO::ATTR_EMULATE_PREPARES на false не работи

  3. org.apache.openjpa.persistence.ArgumentException, докато изпълнявате основния клас

  4. Как да проверите дали mysql база данни съществува

  5. брои без група