解决union查询order by 排序失效的问题
排序 解决 查询 by 失效 order union 问题
2023-09-11 14:15:40 时间
如果要对两个结果集进行合并,我们一般会使用union(去重)查询,SQL如下:
select t1.age,t1.name from table1 t1
union
select t2.age,t2.name from table2 t2
此时,需要对结果集按年龄进行排序,SQL如果这样写:
select t1.age,t1.name from table1 t1
union
select t2.age,t2.name from table2 t2
order by age
这样排序是有问题的,排序还是有问题,改造sql如下:
select t11.age,t11.name (select t1.age,t1.name from table1 t1 order by t1.age )t11
union
select t22.age,t22.name (select t2.age,t2.name from table2 t2 order by t2.age)t22
这样写应该是没问题的,但是这样会被优化器优化,所以要加limit限制,最终的SQL如下:
select t11.age,t11.name (select t1.age,t1.name from table1 t1 order by t1.age limit 99999)t11
union
select t22.age,t22.name (select t2.age,t2.name from table2 t2 order by t2.age limit 99999)t22
相关文章
- 【AIX 学习】内存和CPU消耗进程排序
- 野生前端的数据结构练习(10)希尔排序,归并排序,快速排序
- List根据对象的两个字段进行排序,并且有一个倒序
- Linux排序不准确的问题,用以下两行代码解决
- C++ vector 删除和排序的相关函数
- 1.并发问题产生的三大根源与解决sync锁 目录 1. 并发问题产生的三大根源1 1.1. 原子性 CPU缓存会导致可见问题 指令重排序1 2. 并发问题根源之一:CPU切换线程执导致的
- ios排序算法(时间复杂度,空间复杂度,稳定性)
- SQL37 查找后多列排序
- 1636. 按照频率将数组升序排序-c语言自定义二重排序
- 一个qSort帮您解决QT的QList排序问题
- shell 中的sort -r -k2(sort -k2) 类似着这样的只能对字符串进行排序;指定-n参数才是按照数字进行排序
- Thinkphp 无法使用->order() 排序的两种解决的方法!
- 排序4 -- 插入排序
- 02、算法系列,选择排序的代码实现 + 讲解
- 7. SAP ABAP OData 服务如何支持 $orderby (排序)操作
- c语言 快速排序
- 归并排序代码实现