Mehrere Tabellen abfragen

Was schreist du hier so rum? Hast du einen an der Waffel?

Kowalsky, ich brauche einen Strafregisterauszug. Aber mit allen Namen drin.

Und wo ist das Problem?

Naja, ich weiß nicht, wie ich diese blöde Tabelle in der Mitte verwenden soll. Schau mal, sie will nicht nur die Straftaten haben, sondern auch die Namen der Personen, die sie begangen haben, also vorname, nachname und tatbestand:

Ach sooo … Du willst DREI Tabellen abfragen. Das geht genau gleich wie bei zwei. Das in der Mitte ist eine Verbindungstabelle für die n:m-Beziehung, sozusagen eine Liste, welche Personen welche Straftaten begangen haben. Jede Person kann viele Straftaten Straftaten begangen haben, aber jede Straftat kann auch von vielen Personen begangen worden sein - deshalb ist das eine Viele-zu-Viele-Beziehung, auch genannt n:m-Beziehung.
Das kannst du mit zwei Tabellen nicht abbilden, deshalb machst du so eine Listen-Tabelle in der Mitte. Ich erkläre dir das später nochmal genauer, jetzt mal in aller Kürze:

Ok … Das verstehe ich. Aber wie mache ich das bei der Abfrage?

Ganz einfach. Aber ich schreib's dir besser auf …

Abfrage von 3 und mehr Tabellen

Das funktioniert im Prinzip genau so wie die Abfrage von zwei Tabellen: Du musst für jeweils zwei Tabellen die Primärschlüssel-Fremdschlüssel-Einschränkung angeben, also zum Beispiel:

select * 
from personen p, straftaten s,
strafregister strg
where p.pNr = strg.FK_pNr
and s.idStraftat = strg.FK_idStraftat

Du beachtest: drei Tabellen, zwei Primärschlüssel-Fremdschlüssel-Einschränkungen!

Der Rest ist wie immer. Wenn du in der oberen Abfrage alle Straftaten von Herrn Müller ausgeben willst, machst du eben

select * 
from personen p, straftaten s,
strafregister sr
where p.pNr = sr.FK_pNr
and s.idStraftat = sr.FK_idStraftat
and p.nachname = 'Müller'

Nochmal im Video erklären, bitte

Alles klar. Jetzt habe ich auch kapiert, dass ich das Alias frei wählen kann 💡 - also ist es egal, ob ich für die Tabelle strafregister das Kürzel strg oder sr vergebe.

*seufz

Danke Kowalsky. Hätte ich zwar auch selbst rausfinden können, aber so ging es etwas schneller, und - uh, da ist sie schon!