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 bên trong 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ề liên kết bên trong trên hai bảng.

JOIN và INNER JOIN đều hoạt động theo cùng một cách. INNER JOIN khớp từng hàng trong một bảng với mọi hàng trong bảng khác và cho phép kết hợp các hàng từ cả hai bảng có cột chung nào đó hoặc thỏa mãn một số điều kiện được chỉ định.

Khi áp dụng phép nối giữa hai bảng, chúng ta cần chỉ định điều kiện dựa trên đó các bảng sẽ được nối với nhau.

Cú pháp

SELECT column1, column2...
FROM table_1
INNER 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    |    122     |
|    4     |    Inder    |    125     |
+----------+--------------+-----------+

Bộ phận

+----------+-----------------+
| Dept_id | Department_name  |
+----------+-----------------+
|    120   |    CSE          |
|    121   |    Mathematics  |
|    122   |    Physics      |
+----------+-----------------+

Chúng tôi sẽ nối các bảng trên dựa trên dept_id phổ biến trong cả hai bảng.

Các bước để nối 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 INNER 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’, ‘Physics’)

Lưu ý, hàng thứ 4 không được bao gồm trong kết quả vì không có bản ghi giải toán cho hàng thứ 4 của bảng Học sinh trong bảng Bộ môn.