Self-Joins

Eine Tabelle kann nicht nur zweimal in derselben Abfrage verwendet, sondern sogar mit sich selbst verbunden werden. Zunächst mag das seltsam klingen, aber es gibt gute Gründe, dies gelegentlich zu tun. Die employee-Tabelle enthält beispielsweise einen selbstreferenzierenden Fremdschlüssel: eine Spalte (superior_emp_id), die auf den Primärschlüssel derselben Tabelle verweist. Diese Spalte referenziert den jeweiligen Vorgesetzten eines Mitarbeiters (wenn der Mitarbeiter nicht selbst der Chef des Ganzen ist; dann ist die Spalte natürlich null). Mit einem Self-Join können Sie eine Abfrage schreiben, die die Namen der Angestellten zusammen mit ihren jeweiligen Vorgesetzten aufführt:

mysql> SELECT e.fname, e.lname,
    ->   e_mgr.fname mgr_fname, ...

Get Einführung in SQL, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.