Chúng ta có thể nối hai bảng trong SQL dựa trên một cột chung giữa chúng hoặc dựa trên một số điều kiện cụ thể. Có sẵn các loại JOIN khác nhau để nối hai bảng SQL.
Ở đây, chúng ta sẽ thảo luận về phép nối TRÁI trên hai bảng. Các bảng có thể được nối bằng cách sử dụng phép nối TRÁI. Trong LEFT JOIN, tất cả các bản ghi từ bảng đầu tiên hoặc bảng bên trái luôn được đưa vào kết quả. Từ bảng bên phải, các bản ghi phù hợp được nối với các bản ghi của bảng bên trái. Nếu không tìm thấy bản ghi phù hợp nào cho một hàng trong bảng bên trái, thì Không có bản ghi nào được kết hợp với bản ghi đó.
Các bảng được nối trên cơ sở một số điều kiện. Nhưng tất cả các bản ghi của bảng bên trái sẽ luôn được đưa vào kết quả bất kể điều kiện như thế nào.
Cú pháp
SELECT column1, column2... FROM table_1 LEFT JOIN table_2 ON condition;
Để có hai bảng, “Sinh viên” và “Bộ phận” như những người theo sau -
Học sinh
+----------+--------------+-----------+ | id | Student_name | Dept_id | +----------+--------------+-----------+ | 1 | Rahul | 120 | | 2 | Rohit | 121 | | 3 | Kirat | 125 | | 4 | Inder | 123 | +----------+--------------+-----------+
Bộ phận
+----------+-----------------+ | Dept_id | Department_name | +----------+-----------------+ | 120 | CSE | | 121 | Mathematics | | 122 | Physics | +----------+-----------------+
Chúng tôi sẽ thực hiện phép nối trái trên các bảng trên dựa trên dept_id phổ biến trong cả hai bảng.
Các bước để thực hiện phép nối trái trên hai bảng bằng MySQL trong python
-
nhập trình kết nối MySQL
-
thiết lập kết nối với trình kết nối bằng connect ()
-
tạo đối tượng con trỏ bằng phương thức cursor ()
-
tạo một truy vấn bằng cách sử dụng các câu lệnh mysql thích hợp
-
thực hiện truy vấn SQL bằng phương thức execute ()
-
đóng kết nối
Ví dụ
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()
Đầu ra
(1, ‘Rahul’, ‘CSE’) (2, ‘Rohit’, ‘Mathematics’) (3, ‘Kirat’, None) (4, ‘Inder’, None)
Lưu ý, tất cả các bản ghi từ bảng bên trái đều được đưa vào kết quả mặc dù không có bản ghi nào phù hợp cho 2 hàng cuối cùng.