Union:
联合查询
将多条select语句合并在一起,称为联合操作
语法:
两个之间的联合
(select 语句)union(select 语句)
使用场景:
获得数据的条件,出现了逻辑上的冲突,或者很难在一个逻辑内表示,
就可以拆分成很多个逻辑,分别实现,最后将结果合并在一起。
注意:
如果union 的结果有重复的记录,那么会消除重复.(类似distinct)
可以通过union选项 加上all 来显示
(Select t_name,days from tbl_name where class_name=’php_0331’ order by days asc limit 10)
Union all
(select t_name,days from tbl_name where class_name=’php_0228’ order by days desc limit 10);
此外,如果上述语句中,没有limit,将无法排序;具体有如下要求:
1.必须将子语句包裹在括号内。
2.子语句的order by要配合limit时,才能生效。因为
union在对子语句时,会对没有limit的子句的order by 优化(忽视)
整体排序:
(Select t_name,days from tbl_name where class_name=’php_0331’ )
Union all
(select t_name,days from tbl_name where class_name=’php_0228’ )
order by days desc;
有外部排序,就会忽视子语句排序;
只需要在最后一个select语句后,增加排序操作。
注意:
规定 多个select 语句所检索到的字段数量、字段名称必须一致。
字段类型则有类型转换。不过也不建议
此时,列名称根据第一个select语句规定。
714

被折叠的 条评论
为什么被折叠?



