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.