Tự nối giống như một phép nối bên trong trong đó hai hoặc nhiều trường hợp của cùng một bảng được nối với nhau thông qua một cột / trường kiểu dữ liệu chung. Kết quả như vậy (phép nối bên trong) tạo ra các hàng chung, dựa trên điều kiện nối.
Bảng nhân viên chứa ba bản ghi. Trong trường hợp này,
nhân viên với tư cách là nhân viên:
+-----+---------------+------------+
| id | employee | manager_id |
+-----+---------------+------------+
| 1 | Ola | NULL |
| 2 | Ahmed | 1 |
| 3 | Tove | 1 |
+----------+----------+------------+
nhân viên với tư cách là người quản lý:
+-----+---------------+------------+
| id | employee | manager_id |
+-----+---------------+------------+
| 1 | Ola | NULL |
| 2 | Ahmed | 1 |
| 3 | Tove | 1 |
+----------+----------+------------+
Bây giờ Trường hợp đầu tiên:Hãy thử điều này để hiểu sự khác biệt:
CHỌN emp.*
, người quản lý manager.*
TỪ nhân viên là tôi, nhân viên là người quản lý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 |
+----------+----------+------------+----------+----------+------------+
Hãy xem, emp.id =manager.manager_id. Do đó, emp.employee với tư cách là NAME sẽ cung cấp các hàng Ola từ bảng đầu tiên &manager .employee với tư cách là MANAGER sẽ cung cấp các hàng Ahmed &Tove từ bảng thứ hai.
Bây giờ Trường hợp thứ hai:Hãy thử điều này để hiểu sự khác biệt:
CHỌN emp.*
, người quản lý manager.*
TỪ nhân viên là tôi, nhân viên là người quản lý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 |
+----------+----------+------------+----------+----------+------------+
Hãy xem, manager.id =emp.manager_id. Do đó, emp.employee với tư cách là NAME đang cung cấp các hàng Ahmed &Tove từ bảng đầu tiên &manager .employee với tư cách là MANAGER sẽ cung cấp các hàng Ola từ bảng thứ hai.