Inhaltsverzeichnis

JOIN mit zwei Tabellen

Syntax von JOIN

SELECT * | Attribut [, Attribut] FROM Tabellenname1
xx [xx];
 
xx :=
INNER | (LEFT|RIGHT [OUTER]) JOIN Tabellenname2
ON Tabellenname1.Attribut = Tabellenname2.Attribut

Aufgabe 1

Erstellen Sie eine neue Abfrage mit den beiden Tabellen "tblKunden" und "tblAnreden". Die Abfrage soll sämtliche Kund*innen mit ihren zugehörigen Anreden zeigen, also etwa so:

  1. Wie viele Datensätze erhalten Sie?
  2. Wie viele Datensätze enthält die Tabelle "tblKunden"?
  3. Was ist da allenfalls schiefgelaufen?

Lösung

Aufgabe 2

Passen Sie die Abfrage so an, dass Sie sämtliche Kund*innen sehen, egal, ob sie einen Wert im Attribut "tAnID" haben oder nicht resp. egal, ob der in der Tabelle "tblAnreden" existiert oder nicht.

Lösung

Aufgabe 3

Nun erstellen Sie eine Liste, welche wie folgt aussieht (die Kunden-ID benötigen Sie nicht):

Dass Sie hier wiederum zu wenig Datensätze kriegen, ist klar, falls Sie einen INNER JOIN verwenden. Das interessiert uns diesmal aber nicht.

Lösung

Aufgabe 4

Passen Sie Ihre Liste so an, dass sie nur Kund*innen aus der Schweiz, Deutschland und Österreich anzeigt.

Wie viele Datensätze kriegen Sie?

Lösung

JOINs und Berechnungen

Sie können Aggregatsfunktionen auch über Tabellen-Joins erstellen.

Beispielsweise könnte die folgende Liste in der Praxis interessant sein:

Aufgabe 5

Erstellen Sie ein SQL-Statement, das diese Liste erstellt.

Senden Sie das Statement per E-Mail der Lehrperson.

Aufgabe 6

Erstellen Sie eine alphabetisch sortierte Liste mit Ländern und geben Sie dabei an, wie viele Kund*innen aus diesem Land vertreten sind. Die Liste könnte etwa wie folgt aussehen:

Lösung