Самообединяването е като вътрешно свързване, при което два или повече екземпляра на една и съща таблица са обединени заедно чрез общ тип данни, колона/поле. Такова присъединяване (вътрешно свързване) дава общите редове като резултат, въз основа на условието за свързване.
Таблицата на служителите съдържа три записа. В този случай,
служител като emp:
+-----+---------------+------------+
| id | employee | manager_id |
+-----+---------------+------------+
| 1 | Ola | NULL |
| 2 | Ahmed | 1 |
| 3 | Tove | 1 |
+----------+----------+------------+
служител като ръководител:
+-----+---------------+------------+
| id | employee | manager_id |
+-----+---------------+------------+
| 1 | Ola | NULL |
| 2 | Ahmed | 1 |
| 3 | Tove | 1 |
+----------+----------+------------+
Сега Първи случай:Нека опитаме това, за да разберем разликата:
ИЗБЕРЕТЕ emp.*
, manager.*
FROM служител като emp, служител като мениджърWHERE 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 |
+----------+----------+------------+----------+----------+------------+
Вижте, emp.id =manager.manager_id . По този начин emp.employee като NAME дава редове на Ola от първата маса, а manager.employee като MANAGER дава редове на Ahmed &Tove от втората таблица.
Сега втори случай:Нека опитаме това, за да разберем разликата:
ИЗБЕРЕТЕ emp.*
, manager.*
ОТ служител като emp, служител като мениджърWHERE 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 |
+----------+----------+------------+----------+----------+------------+
Вижте, manager.id =emp.manager_id . По този начин emp.employee като NAME дава редове на Ahmed &Tove от първата маса, а manager.employee като MANAGER дава редове на Ola от втората таблица.