Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Thực hiện LEFT JOIN trên hai bảng MySQL bằng Python


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

  1. Import mysql.connector
  2. Thiết lập kết nối bằng connect()
  3. Tạo đối tượng con trỏ qua cursor()
  4. Viết truy vấn LEFT JOIN
  5. Thực thi truy vấn bằng execute()
  6. Đó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).