sql >> Database >  >> RDS >> Mysql

Hoe een zoekopdracht te formuleren om alle cursussen te tonen die door een persoon zijn gevolgd

SQL-deals in tabellen. Een tabel heeft per definitie een aantal rijen, die allemaal dezelfde kolommen hebben. Uw zoekopdracht zal een resultatenset opleveren die de informatie van de klant dupliceert voor elke cursus die ze heeft gevolgd.

Uw presentatielaag gaat die tabel opmaken door de eerste rij van elke nieuwe client op te merken en de clientheader te doorbreken. Je doet dat in php of Java of Crystal Reports of een dergelijke presentatietechnologie.

Uw vraag ziet er ongeveer zo uit.

    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 maakt een goed punt over de valkuil van het gebruik van USING() . Hier is dezelfde vraag op 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. Fout bij het bulksgewijs laden van gegevensconversie (type komt niet overeen of ongeldig teken voor de opgegeven codetabel) voor rij 1, kolom 4 (jaar)

  2. Waarom kan ik een teken gebruiken dat geen deel uitmaakt van een tekenset (windows-1252)?

  3. Wat is het verschil tussen BIT en TINYINT in MySQL?

  4. Waar mysql_real_escape_string gebruiken om SQL-injectie te voorkomen?