Giới thiệu SELF JOIN
SELF JOIN là phép nối bảng với chính bản thân nó. Thực hiện giữa hai bản sao của cùng một bảng. Các hàng được so khớp với các hàng khác của cùng bảng dựa trên điều kiện.
Cú pháp
SELECT a.cot1, b.cot2 FROM ten_bang a, ten_bang b WHERE dieu_kien;
a,b: hai bí danh (alias) của cùng một bảng.ten_bang: tên bảng thực hiện SELF JOIN.
Các bước thực hiện
- Import
mysql.connector - Thiết lập kết nối bằng
connect() - Tạo đối tượng con trỏ qua
cursor() - Viết truy vấn SELF JOIN
- Thực thi truy vấn bằng
execute() - Đóng kết nối
Ví dụ minh họa
Bảng Students:
+----------+--------------+-----------+ | id | Student_name | Dept_id | +----------+--------------+-----------+ | 1 | Rahul | 120 | | 2 | Rohit | 121 | | 3 | Kirat | 121 | | 4 | Inder | 123 | +----------+--------------+-----------+
Thực hiện SELF JOIN với điều kiện a.Dept_id < b.Dept_id:
import mysql.connector
db = mysql.connector.connect(
host="your_host",
user="your_username",
password="your_password",
database="database_name"
)
cursor = db.cursor()
query = "SELECT a.Dept_id, b.Student_name FROM Students a, Students b WHERE a.Dept_id < b.Dept_id"
cursor.execute(query)
rows = cursor.fetchall()
for x in rows:
print(x)
db.close()
Kết quả
| Dept_id | Student_name |
|---|---|
| 120 | Rohit |
| 120 | Kirat |
| 120 | Inder |
| 121 | Inder |
| 121 | Inder |