http://vietjack.com/sql/index.jsp Copyright © vietjack.com http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 SELF JOIN trong SQL SELF JOIN trong SQL được sử dụng để
Trang 1http://vietjack.com/sql/index.jsp Copyright © vietjack.com
http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1
SELF JOIN trong SQL
SELF JOIN trong SQL được sử dụng để kết hợp một bảng với chính nó như khi coi bảng đó là hai
bảng, thay tên tạm thời ít nhất một bảng trong lệnh SQL
Cú pháp
Cú pháp cơ bản của SELF JOIN trong SQL như sau:
SELECT a.ten_cot, b.ten_cot
FROM bang1 a, bang1 b
WHERE a.field_chung = b.field_chung;
Ở đây, mệnh đề WHERE có thể là bất kỳ biểu thức nào theo yêu cầu của bạn
Giả sử có hai bảng, bảng NHANVIEN có các bản ghi sau:
+ + -+ -+ -+ -+
| ID | TEN | TUOI | DIACHI | LUONG |
+ + -+ -+ -+ -+
| 1 | Hoang | 32 DongDa 2000.00
| 2 | Thanh | 25 QuangTrung | 1500.00
| 3 | Viet | 23 KimLien | 2000.00
| 4 | Nhan 25 BaDinh | 6500.00
| 5 | Huong | 27 CauGiay | 8500.00
| 6 | Long | 22 TrungKinh | 4500.00
| 7 | Nam | 24 GiapBat | 10000.00
+ + -+ -+ -+ -+
Bây giờ, chúng ta kết hợp bảng này với chính nó bởi sử dụng SELF JOIN trong SQL như sau:
SQL> SELECT a.ID, b.NAME, a.LUONG
FROM NHANVIEN a, NHANVIEN b
WHERE a.LUONG < b.LUONG;
Ví dụ trên sẽ cho kết quả:
Trang 2http://vietjack.com/sql/index.jsp Copyright © vietjack.com
http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 2
+ + -+ -+
| ID | TEN | LUONG |
+ + -+ -+
| 2 | Hoang | 1500.00
| 2 | Viet | 1500.00
| 1 | Nhan 2000.00
| 2 | Nhan 1500.00
| 3 | Nhan 2000.00
| 6 | Nhan 4500.00
| 1 | Huong | 2000.00
| 2 | Huong | 1500.00
| 3 | Huong | 2000.00
| 4 | Huong | 6500.00
| 6 | Huong | 4500.00
| 1 | Long | 2000.00
| 2 | Long | 1500.00
| 3 | Long | 2000.00
| 1 | Nam | 2000.00
| 2 | Nam | 1500.00
| 3 | Nam | 2000.00
| 4 | Nam | 6500.00
| 5 | Nam | 8500.00
| 6 | Nam | 4500.00
+ + -+ -+