Giới thiệu LEFT JOIN
LEFT JOIN trả về tất cả bản ghi từ bảng bên trái (bảng thứ nhất). Các bản ghi khớp từ bảng bên phải được nối thêm. Nếu không khớp, giá trị NULL sẽ xuất hiện ở bên phải.
Cú pháp
SELECT cot1, cot2... FROM bang_1 LEFT JOIN bang_2 ON dieu_kien;
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 LEFT JOIN
- Thực thi truy vấn bằng
execute() - Đóng kết nối
Ví dụ minh họa
Hai bảng Students và Department (Dept_id của Kirat là 125, không có trong Department):
Students: +----------+--------------+-----------+ | id | Student_name | Dept_id | +----------+--------------+-----------+ | 1 | Rahul | 120 | | 2 | Rohit | 121 | | 3 | Kirat | 125 | | 4 | Inder | 123 | +----------+--------------+-----------+ Department: +----------+-----------------+ | Dept_id | Department_name | +----------+-----------------+ | 120 | CSE | | 121 | Mathematics | | 122 | Physics | +----------+-----------------+
LEFT JOIN trên 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 Students.Id, Students.Student_name, Department.Department_name
FROM Students LEFT JOIN Department
ON Students.Dept_Id = Department.Dept_Id"""
cursor.execute(query)
rows = cursor.fetchall()
for x in rows:
print(x)
db.close()
Kết quả
(1, 'Rahul', 'CSE') (2, 'Rohit', 'Mathematics') (3, 'Kirat', None) (4, 'Inder', None)
Tất cả bản ghi từ bảng bên trái (Students) đều xuất hiện, kể cả hàng không khớp (Kirat, Inder).