Ilja: SQL-Abfrage über mehrere Tabellen

Beitrag lesen

yo,

  • wie heißen die Programme, zu denen er/sie mindestens eine Version geschrieben hat? (immer mit der Einschränkung AutorID = 5)

das ist einfach, ein join über alle drei tabellen mit einem DISTINCT gewürtzt.

SELECT DISTINCT p.name
FROM prgramme p
INNER JOIN ProgrammVersion pv ON pv.ProgrammID = p.ProgrammID
INNER JOIN Prog_Autor pa ON pa.ProgrammVersionsID = pv.ProgrammVersionsID
WHERE pa.AutorID = 5
;

  • welches ist die höchste Version eines Programms, zu dem er/sie mindestens eine Version geschrieben hat?

das geht mit einer korrelierten unterabfrage, wobei du die version als string gespeichert hast, man müsste sie vorher in eine zahl Casten. wie diese funktion aussihet, hängt von deiner version und dbms ab. auch ob es unterabfragen untestützt.

  • welche ProgrammVersionsID hat diese höchste Version? (damit ich direkt dorthin verlinken kann)

das gleiche wie bei der höchsten version, nur eben die id ausgeben.

Ilja