组合查询

微信扫一扫,分享到朋友圈

组合查询

Mysql允许执行多个查询(多条select语句),并将结果作为单个查询结果集返回。这些组合查询通常称为并或复合查询。

使用组合查询:

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

其中组合查询和多个where条件查询完成的工作相同。

创建组合查询

SELECT id,NAME,part,age FROM tablea WHERE age<=30

SELECT id,NAME,part,age  FROM tablea WHERE id IN (1,4)

SELECT id,NAME,part,age FROM tablea WHERE age<=30
UNION
SELECT id,NAME,part,age FROM tablea WHERE id IN (1,4)

从中可以看出union指示MySql执行两条select语句,并把输出组合成单个查询结果集。

也可以使用多条where子句完成相同的功能:

SELECT id,NAME,part,age FROM tablea WHERE age<=30 OR id IN (1,4)

2种方法都会自动去除了重复的行。如果确实需要每个条件的匹配行全部出现(包括重复行),则必须使用union all而不是where。

union规则

规则:

  • union必须由两条或两条以上的select语句组成,语句之间用关键字union分隔。
  • union中的每个查询必须包含相同的列、表达式或聚集函数(不过各个列不需要以相同的次序列出)
  • 列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐含地转换的类型。

对组合查询结果排序

其中只能使用一条order by子句,它必须出现在最后一条select语句之后:

SELECT id,NAME,part,age FROM tablea WHERE age<=30
UNION
SELECT id,NAME,part,age FROM tablea WHERE id IN (1,4)
ORDER BY id DESC

原生js ajax 封装

上一篇

“快手616品质购物节”玩法大盘点:带货挑战榜、新人优惠、种草直播流

下一篇

你也可能喜欢

组合查询

长按储存图像,分享给朋友