组合查询

多数的SQL查询都值包含从一个或多个表中返回数据的单条SELECT语句,MYSQL也允许执行多个查询,并将结果单一返回。这些组合查询通常称为并或符合查询

以下两种情况需要用到组合查询

  • 在单个查询中从不同的表返回类似结构的数据;
  • 对单个表执行多个查询,按单个查询返回数据。

组合查询和多个WHERE条件:组合相同表的两个查询完成的工作与具有多个WHERE子句条件的单条查询完成的工作相同。

创建组合查询

可用UNION操作符来组合数条SQL查询。利用UNION。可以给出多条SELECT语句,将他们的结果组合成的那个结果集。

使用UNION

UNION的使用方法:所需做得只是给出每条SELECT语句,在各条语句之间放上关键字UNION

语法结构

1
2
3
第一条SELECT语句
UNION
第二天SELECT语句;

注意:这样使用组合查询,返回的是两条SELECT语句可以返回的数据对的并集。

UNION规则

UNION的使用规则

  • UNION必须由两条或两条以上的SELECT语句组成,语句之间用关联词UNION分隔
  • UNION中的每个查询必须包含相同的列、表达式或聚集函数
  • 列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐含地转换的类型

包含或取消重复的行

UNION从查询结果集中自动去除重复的行(换句话说,他的行为与单条SELECT语句中使用多个WHERE子句条件一样)。

如果想要返回所有的数据,使用UNION ALL而不是UNION

语法结构

1
2
3
第一条SELECT语句
UNION ALL
第二条SELECT语句;

对组合查询结果排序

在使用UNION组合查询时,只能使用一条ORDER BY子句,它必须出现在最后一条SELECT语句之后。对于结果集,不存在用一种方式排序一部分,而有用另一种方式排序另一部分的情况,因此不允许使用多条ORDER BY子句。

如果要排序,在最后一个SELECT子句中使用

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2023 dwx
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信