Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào bạn có thể thực hiện phép nối phải trên hai bảng bằng MySQL trong Python?

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 RIGHT trên hai bảng. Trong phép nối RIGHT, tất cả các bản ghi từ bảng thứ hai hoặc bảng bên phải luôn được đưa vào kết quả. Từ bảng bên trá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 phả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 phả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 phả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
RIGHT 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     |    121    |
|    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 phả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 phả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="yourpassword",database="database_name")

cursor=db.cursor()
query="SELECT Students.Id,Students.Student_name,Department.Department_name
FROM Students RIGHT 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’ , ‘Mathematics’)
(None, ‘Physics’)

Lưu ý, tất cả các bản ghi từ bảng bên phải đều được đưa vào kết quả mặc dù không có bản ghi nào phù hợp cho hàng cuối cùng.