Định Nghĩa về SQL Self Join
Self Join là một kỹ thuật trong SQL cho phép một bảng được kết nối với chính nó. Kỹ thuật này hữu ích khi bạn cần so sánh các hàng trong cùng một bảng hoặc tìm các mối quan hệ giữa các bản ghi trong bảng.
Self Join sử dụng phép nối (JOIN) với nhau, thường là INNER JOIN, và đôi khi sử dụng LEFT JOIN hoặc RIGHT JOIN tùy thuộc vào yêu cầu truy vấn.
Cú Pháp của Self Join
Cú pháp cơ bản của self join như sau:
SELECT a.column_name, b.column_name FROM table_name a, table_name b WHERE condition;
Trong đó, a và b là các bí danh (alias) được sử dụng để phân biệt các phiên bản khác nhau của bảng cùng một tên.
Ví Dụ Về Self Join
Giả sử bạn có một bảng Employees như sau:
| EmployeeID | Name | ManagerID | |------------|--------|-----------| | 1 | John | NULL | | 2 | Jane | 1 | | 3 | Mike | 1 | | 4 | Emily | 2 | | 5 | Alex | 2 |
Bảng này chứa thông tin về các nhân viên và ID của người quản lý tương ứng của họ. Chúng ta có thể sử dụng self join để tìm tên của các nhân viên cùng với tên của người quản lý của họ.
SELECT e1.Name AS Employee, e2.Name AS Manager FROM Employees e1 LEFT JOIN Employees e2 ON e1.ManagerID = e2.EmployeeID;
Trong truy vấn trên, e1 và e2 là các bí danh cho bảng Employees. Chúng ta thực hiện LEFT JOIN để lấy tất cả nhân viên từ e1 và tìm kiếm người quản lý tương ứng trong e2.
Kết quả sẽ là:
| Employee | Manager | |----------|---------| | John | NULL | | Jane | John | | Mike | John | | Emily | Jane | | Alex | Jane |
Qua ví dụ này, bạn có thể thấy cách sử dụng self join để làm rõ mối quan hệ giữa các nhân viên và người quản lý của họ trong cùng một bảng.
Kết Luận
Self Join là một công cụ mạnh mẽ giúp bạn có thể tìm ra mối quan hệ giữa các bản ghi trong cùng một bảng. Bằng cách sử dụng self join, bạn có thể dễ dàng phân tích dữ liệu phức tạp hơn và phát hiện các mối quan hệ chưa rõ ràng trong dữ liệu của bạn.