组合查询
UNION
MySQL允许执行多个查询(多个SELECT语句),并将结果作为单个查询结果集返>回。这些组合查询通常称为并(Union)或复合查询(Compound Query)
可以使用UNION来实现并的操作,只需要在几条SELECT语句之间加上UNION就可以了
mysql> SELECT * FROM product
-> UNION
-> SELECT * FROM vent;
+------+----------+
| name | vent_id |
+------+----------+
| KOH | 1 |
| NaOH | 2 |
| KF | 1 |
| NaF | 3 |
| 1 | wanqing |
| 2 | alading |
| 3 | guoyao |
| 4 | maikelin |
+------+----------+
有几点使用UNION的注意事项:
- UNION中的每个查询必须包含相同的列,表达式或聚集函数
- 列数据类型不必完全一样,但是必须兼容。可以让DBMS隐式转换
包含或取消重复的行
如果UNION并的两个SELECT返回了重复的行,那么重复的行将会被省略。比如>说:
mysql> SELECT name,vent_id FROM product UNION SELECT name,vent_id FROM product;
+------+---------+
| name | vent_id |
+------+---------+
| KOH | 1 |
| NaOH | 2 |
| KF | 1 |
| NaF | 3 |
+------+---------+
本来应该返回八行的,但是只返回了四行,因为重复的四行被省略了。想不让它省略可以使用UNION ALL