sql >> Databasteknik >  >> RDS >> Mysql

Hur man formulerar en fråga för att visa alla kurser som tagits av en person

SQL handlar i tabeller. Per definition har en tabell ett gäng rader, som var och en har samma kolumner som varandra. Din fråga kommer att ge en resultatuppsättning som duplicerar kundens information för varje kurs hon tog.

Ditt presentationslager kommer att formatera den tabellen genom att lägga märke till den första raden av varje ny klient och bryta ut klienthuvudet. Du kommer att göra det i php eller Java eller Crystal Reports eller någon sådan presentationsteknik.

Din fråga är ungefär så här.

    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 gör en bra poäng om fallgropen med att använda USING() . Här är samma fråga på 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. Hur ställer jag in ASP.NET MVC 2 med MySQL?

  2. MySQL:medelvärdesberäkning med nollvärden

  3. Vad är maximalt antal rader i orakel kapslade tabeller

  4. MySQL-producerande kolumner med loop i en select-sats