Toán tử UNION trong MySQL có thể kết hợp hai hoặc nhiều tập kết quả, do đó chúng ta có thể sử dụng UNION để tạo view chứa dữ liệu từ nhiều bảng. Để hiểu khái niệm này, chúng ta sử dụng các bảng cơ sở Student_info và Student_detail với dữ liệu sau:
mysql> Select * from Student_info; +------+---------+------------+------------+ | id | Name | Address | Subject | +------+---------+------------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Chandigarh | Literature | | 125 | Raman | Shimla | Computers | | 130 | Ram | Jhansi | Computers | | 132 | Shyam | Chandigarh | Economics | | 133 | Mohan | Delhi | Computers | +------+---------+------------+------------+ 6 rows in set (0.00 sec) mysql> Select * from Student_detail; +-----------+-------------+------------+ | Studentid | StudentName | address | +-----------+-------------+------------+ | 100 | Gaurav | Delhi | | 101 | Raman | Shimla | | 103 | Rahul | Jaipur | | 104 | Ram | Chandigarh | | 105 | Mohan | Chandigarh | +-----------+-------------+------------+ 5 rows in set (0.00 sec)
Ví dụ
Truy vấn dưới đây sẽ tạo view bằng cách sử dụng dữ liệu từ cả hai bảng trên:
mysql> Create or Replace View Info AS Select StudentName from Student_detail UNION Select Name From Student_info; Query OK, 0 rows affected (0.10 sec) mysql> select * from info; +-------------+ | StudentName | +-------------+ | Gaurav | | Raman | | Rahul | | Ram | | Mohan | | YashPal | | Shyam | +-------------+ 7 rows in set (0.00 sec)
Kết quả trên là sự kết hợp của các giá trị từ cả hai cột. Nếu giá trị lặp lại thì nó sẽ loại bỏ các giá trị trùng lặp.
Chúng ta cũng có thể lưu giữ tất cả các giá trị, bao gồm cả giá trị trùng lặp, bằng cách sử dụng UNION ALL như trong truy vấn sau:
mysql> Create or Replace View Info AS Select student name from Student_detail UNION ALL Select Name From Student_info; Query OK, 0 rows affected (0.16 sec) mysql> select * from info; +-------------+ | StudentName | +-------------+ | Gaurav | | Raman | | Rahul | | Ram | | Mohan | | YashPal | | Gaurav | | Raman | | Ram | | Shyam | | Mohan | +-------------+ 11 rows in set (0.00 sec)