Het is mogelijk een tabel met zichzelf te joinen door twee aliassen te gebruiken voor dezelfde tabel. De database denkt dan dat er twee tabellen zijn. In de tabel employees staat bij manager_id wie de manager is van de employee. Dat nummer bij manager_id verwijst naar het employee_id.
•Je ziet dat King geen manager_id heeft, hij is de hoogste baas.
•Kochar heeft als manager_id 100 en dat is dus King.
•Hunold heeft als manager_id 102 en dat is dus De Haan.
•et cetera
Als je een alias gaat kiezen, moet je een duidelijke naam nemen. In dit geval hebben we worker voor de werknemers gekozen en manager voor de managers. We kunnen nu een overzicht maken met de werknemers en hun managers.
SELECT worker.last_name, worker.manager_id, manager.last_name AS manager_name
FROM employees worker JOIN employees manager
ON worker.manager_id = manager.employee_id;
En als je daar KING bij wil hebben, maak je er een LEFT JOIN van.
SELECT worker.last_name, worker.manager_id, manager.last_name AS manager_name
FROM employees worker LEFT JOIN employees manager
ON worker.manager_id = manager.employee_id;
De SELF JOIN komt sporadisch voor en is dus niet erg belangrijk. In de database die wij gebruiken is er slechts één SELF-JOIN te maken en die staat hierboven uitgelegd.