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

Giải thích và chỉ ra việc sử dụng UNION trong MySQL bằng Python?

Câu lệnh UNION được sử dụng để kết hợp các kết quả của hai truy vấn SELECT mà không lặp lại các giá trị trùng lặp. Nếu cả hai truy vấn CHỌN trả về cùng một hàng, thì hàng đó chỉ được liệt kê một lần.

Để thực hiện UNION trên hai câu lệnh được chọn,

  • Số cột được trả về phải giống nhau

  • Kiểu dữ liệu của các cột phải giống nhau

  • Các cột phải được trả về theo cùng một thứ tự bởi cả hai câu lệnh select.

Cú pháp

SELECT column_name FROM table1
UNION
SELECT column_name FROM table2

Các bước để thực hiện kết hợp hai truy vấn được chọn bằng MySQL trong python

  • nhập trình kết nối MySQL

  • 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

Để 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ẽ chọn Dept_id từ cả hai bảng và thực hiện liên kết trên kết quả. Điều này sẽ trả về cho chúng ta tất cả các dept_id riêng biệt có trong cả hai bảng.

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 Dept_id FROM Students UNION SELECT Dept_id FROM Department"
cursor.execute(query)

rows=cursor.fetchall()
for row in rows:
   print(row)

db.close()

Đầu ra

120
121
125
123
122