Vlastní spojení je jako vnitřní spojení, kde jsou dvě nebo více instancí stejné tabulky spojeny dohromady prostřednictvím sloupce/pole společného datového typu. Takové spojení (vnitřní spojení) dává jako výsledek společné řádky na základě podmínky spojení.
Tabulka zaměstnanců obsahuje tři záznamy. V tomto případě
zaměstnanec jako emp:
+-----+---------------+------------+
| id | employee | manager_id |
+-----+---------------+------------+
| 1 | Ola | NULL |
| 2 | Ahmed | 1 |
| 3 | Tove | 1 |
+----------+----------+------------+
zaměstnanec jako manažer:
+-----+---------------+------------+
| id | employee | manager_id |
+-----+---------------+------------+
| 1 | Ola | NULL |
| 2 | Ahmed | 1 |
| 3 | Tove | 1 |
+----------+----------+------------+
Nyní první případ:Zkusme toto, abychom pochopili rozdíl:
SELECT emp.*
, manager.*
OD zaměstnance jako emp, zaměstnance jako manažera KDE emp.id =manager.manager_id
+-----+---------------+------------+-----+---------------+------------+
| id | employee | manager_id | id | employee | manager_id |
+-----+---------------+------------+-----+---------------+------------+
| 1 | Ola | NULL | 2 | Ahmed | 1 |
| 1 | Ola | NULL | 3 | Tove | 1 |
+----------+----------+------------+----------+----------+------------+
Podívejte se, emp.id =manager.manager_id . Zaměstnanec jako JMÉNO tedy dává řádky Ola z prvního stolu a manager.employee jako MANAŽER dává řádky Ahmed &Tove z druhého stolu.
Teď Druhý případ:Zkusme toto, abychom pochopili rozdíl:
SELECT emp.*
, manager.*
OD zaměstnance jako emp, zaměstnanec jako manažer KDE manager.id =emp.manager_id
+-----+---------------+------------+-----+---------------+------------+
| id | employee | manager_id | id | employee | manager_id |
+-----+---------------+------------+-----+---------------+------------+
| 2 | Ahmed | 1 | 1 | Ola | NULL |
| 3 | Tove | 1 | 1 | Ola | NULL |
+----------+----------+------------+----------+----------+------------+
Viz manager.id =emp.manager_id . Zaměstnanec jako JMÉNO tedy dává řádky Ahmed &Tove z prvního stolu a manager.employee jako MANAŽER dává řádky Ola z druhého stolu.