blikk info infothek forum galerie sitemap

Self-Join

anfang zurueck weiter ende nach oben

Eine Tabelle kann auch mit sich selbst verknüpfen werden, diese Art des joins nennt man self-join.

Beispiel:
Kunden die sowohl eine Kreditkarte von American Express, wie auch eine von Mastercard haben, sollen ermittelt werden.

Die Tabelle Kunden sieht wie folgt aus:
uploads/2505/group6_table_kunden.png
Die Tabelle Kreditkarten:
uploads/2505/group6_table_cc.gif

Die Abfrage:
uploads/2505/group6_qry.png
Und das Ergebnis:
uploads/2505/group6_qry_res.png

SQL:
SELECT Kunden.Nachname, Kunden.Vorname, Kreditkarten.Firma, Kreditkarten_1.Firma
FROM Kreditkarten AS Kreditkarten_1 INNER JOIN (Kunden INNER JOIN Kreditkarten ON Kunden.KndNr = Kreditkarten.KndNr) ON Kreditkarten_1.KndNr = Kunden.KndNr
WHERE ((Kreditkarten.Firma="Mastercard") AND (Kreditkarten_1.Firma="American Express"));

Erklärung:
Es wird zweimal auf die gleiche Tabelle zugegriffen, um dies zu ermöglichen werden durch FROM & JOIN Aliasnamen verwendet.

nach oben