MySQL 如何在数据集上使用MySQL UNION操作符?
基本上,MySQL UNION操作符用于组合2个或多个SELECT语句的结果集。它在不同的SELECT语句之间删除重复行。在UNION操作符中的每个SELECT语句必须具有相同数目的具有相似数据类型的结果集中的字段。其语法如下−
阅读更多:MySQL 教程
语法
SELECT expression1, expression2, … expression_n
FROM table
[WHERE conditions]
UNION [DISTINCT]
SELECT expression1, expression2, … expression_n
FROM table
[WHERE conditions]
在这里, expression1,expression2,…expression_n 是我们希望检索的列。
表, 是我们想要检索记录的表。
WHERE条件, 它是可选的,必须满足记录的选择条件。
DISTINCT, 它也是可选的,删除结果集中的重复项,但DISTINCT修饰符的包含对UNION操作符的结果集没有影响,因为默认情况下UNION操作符已经删除了重复项。
示例
在这个例子中,我们有两个表,即Student_detail和Student_info,其中包含以下数据 –
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)
现在,以下使用UNION操作符的查询返回两个表中的所有“studentid”值。
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)