sql >> Databáze >  >> RDS >> Mysql

Jak formulovat dotaz pro zobrazení všech kurzů, které osoba absolvovala

SQL nabídky v tabulkách. Podle definice má tabulka spoustu řádků, z nichž každý má stejné sloupce jako každá druhá. Váš dotaz poskytne sadu výsledků, která duplikuje klientské informace pro každý kurz, který absolvovala.

Vaše prezentační vrstva zformátuje tuto tabulku tak, že si všimne prvního řádku každého nového klienta a rozdělí hlavičku klienta. Uděláte to v php nebo Javě nebo Crystal Reports nebo nějaké takové prezentační technologii.

Váš dotaz je něco takového.

    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 dobře poukazuje na úskalí používání USING() . Zde je stejný dotaz na 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. MYSQL Datum Čas Zaokrouhlení na nejbližší hodinu

  2. kontext spuštění databázového triggeru v PostgreSQL

  3. Je v MySQL dostupný příkaz merge

  4. Plugin '0' není načten