组合查询
- MySQL允许执行多个查询(多条select语句),并将结果作为单个查询结果集返回,这些组合查询通常称为并(union)或复合查询(compound query)
- 有两种基本情况 ,其中需要使用组合查询:在单个查询中从不同的表返回类似结构的数据;对单个表执行多个查询,按单个查询返回数据
创建组合查询
- 可用union操作符来组合数条SQL查询
- union的使用很简单,所需做的只是给出每条select语句,在各条语句之间放上关键字union
- 使用union可能比使用where子句更为复杂,但对于更复杂的过滤条件,或者从多个表而不是单个表中检索数据的情形,使用union可能会使处理更简单
union规则
- union必须由两条或两条以上的select语句组成
- union中的每个查询必须包含相同的列、表达式或聚集函数(不过各个列不需要以相同的次序列出)
- 列数据类型必须兼容
- union从查询结果集中自动去除了重复的行,如果想返回所有匹配行,可使用union all
- 对组合查询结果排序,在使用union组合查询时,只能使用一条order by子句,它必须出现在最后一条select语句之后