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

Làm cách nào chúng ta có thể sử dụng toán tử MySQL UNION trên tập dữ liệu?

Về cơ bản, toán tử MySQL UNION được sử dụng để kết hợp các tập kết quả của 2 hoặc nhiều câu lệnh SELECT. Nó loại bỏ các hàng trùng lặp giữa các câu lệnh SELECT khác nhau. Mỗi câu lệnh SELECT trong toán tử UNION phải có cùng số trường trong tập kết quả trong các kiểu dữ liệu tương tự. Cú pháp của nó sẽ như sau -

Cú pháp

SELECT expression1, expression2, … expression_n
FROM table
[WHERE conditions]
UNION [DISTINCT]
SELECT expression1, expression2, … expression_n
FROM table
[WHERE conditions]

Đây, biểu thức1, biểu thức2,… biểu thức_n là các cột mà chúng tôi muốn truy xuất.

Bảng, là các bảng mà chúng tôi muốn truy xuất các bản ghi.

Điều kiện WHERE, nó là tùy chọn phải được đáp ứng để các bản ghi được chọn.

DISTINCT, cũng có thể tùy chọn xóa các bản sao khỏi tập kết quả, nhưng việc bao gồm công cụ sửa đổi DISTINCT không ảnh hưởng đến tập kết quả của toán tử UNION vì theo mặc định, toán tử UNION đã xóa các bản sao.

Ví dụ

Trong ví dụ này, chúng tôi là hai bảng là Student_detail và Student_info có dữ liệu sau -

mysql> Select * from Student_detail;
+-----------+---------+------------+------------+
| studentid | Name    | Address    | Subject    |
+-----------+---------+------------+------------+
|    101    | YashPal | Amritsar   | History    |
|    105    | Gaurav  | Chandigarh | Literature |
|    130    | Ram     | Jhansi     | Computers  |
|    132    | Shyam   | Chandigarh | Economics  |
|    133    | Mohan   | Delhi      | Computers  |
|    150    | Rajesh  | Jaipur     | Yoga       | 
|    160    | Pradeep | Kochi      | Hindi      |
+-----------+---------+------------+------------+
7 rows in set (0.00 sec)

mysql> Select * from Student_info;
+-----------+-----------+------------+-------------+
| studentid | Name      | Address    | Subject     |
+-----------+-----------+------------+-------------+
|    101    | YashPal   | Amritsar   | History     |
|    105    | Gaurav    | Chandigarh | Literature  |
|    130    | Ram       | Jhansi     | Computers   |
|    132    | Shyam     | Chandigarh | Economics   |
|    133    | Mohan     | Delhi      | Computers   |
|    165    | Abhimanyu | Calcutta   | Electronics |
+-----------+-----------+------------+-------------+
6 rows in set (0.00 sec)

Bây giờ, truy vấn sau sử dụng toán tử UNION trả về tất cả các giá trị ‘studentid’ cho cả hai bảng.

mysql> Select Studentid FROM student_detail UNION SELECT Studentid FROM student_info;
+-----------+
| Studentid |
+-----------+
|    101    |
|    105    |
|    130    |
|    132    |
|    133    |
|    150    |
|    160    |
|    165    |
+-----------+
8 rows in set (0.00 sec)