2 ysysdzz ysysdzz 于 2016.03.23 11:23 提问

求助一条SQL语句及原理,具体请看描述!

图片说明
如图所示订单表 pid 为null的是主订单
需求是 按主订单ddate倒序排列,子订单排在主订单后面
最终结果如图:
图片说明
我写的SQL语句可以实现

 SELECT DISTINCT id from (
    SELECT b.id,  a.ddate FROM `tttest` a , `tttest` b
    where a.id = b.pid
    union
    SELECT c.id,c.ddate from tttest c 
) t ORDER BY t.ddate desc ,id

但是太复杂 求一条简介的SQL

1个回答

danielinbiti
danielinbiti   Ds   Rxr 2016.03.23 11:35
 类似
 SELECT * FROM (
   select id,ifnull(pid,id) pid ,ddate from tttest 
 ) t order by ddate desc,pid,id
 当然,如果不同订单时间有交叉这个有点问题,需要在内部语句组合key
ysysdzz
ysysdzz 如果不同订单时间有交叉这个有点问题,需要在内部语句组合key 这个不太明白啊 还是麻烦写具体吧。。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
sql sql语句的执行原理
第一步:客户端把语句发给服务器端执行:   在客户端连接上服务器后,在客户端与服务器端都会形成一个进程,客户端上的我们叫做客户端进程;而服务器上的我们叫做服务器进程。所有的SQL语句都是在客户端进程产生的,在服务器进程执行的。 第二步:语句解析:   当客户端把SQL语句传送到服务器后,服务器进程会对该语句进行解析(在服务器上进行)。此时服务器进程会对于SQL语句进行以下操作: 1、  查
Ora9iSQLRef.chm
Ora9i的SQL语句参考文档,描述SQL语句的具体使用
优化SQL语句的一般步骤
当面对一个有SQL性能的数据库时,我们可以从以下步骤来对数据库进行分析。1.通过show status命令了解各种SQL的执行频率    MySQL客户端连接成功后,通过show [session | global] status命令可以提供服务器状态信息。session为当前连接的统计结果;global为数据库启动至今的统计结果;默认为session。     以下为常用的统计参数:
SQL语句执行流程与顺序原理解析
Oracle语句执行流程 第一步:客户端把语句发给服务器端执行 当我们在客户端执行SQL语句时,客户端会把这条SQL语句发送给服务器端,让服务器端的进程来处理这语句。也就是说,Oracle 客户端是不会做任何的操作,他的主要任务就是把客户端产生的一些SQL语句发送给服务器端。服务器进程从用户进程把信息接收到后, 在PGA 中就要此进程分配所需内存,存储相关的信息,如:在会话内存存储相关
thinkphp输出最后一条sql语句
之前用tp写一个商城项目的时候,不会看错误日志,遇到问题各种echo var_dump再die掉,而很多时候因为数据库各种联表查询,逻辑乱,就需要打印 sql语句再测试sql语句是否正确,打印sql语句一般用到的就是getLastSql()方法。 $uModel=M('user'); $uData = $uModel->where(array('id'=>'1'))->find(); //下
一条sql 语句搞定数据库分页
一条语句搞定数据库分页select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段10 = 每页记录数20 = (当前页 + 1) * 每页记录数以上语句即可以实现分页,但是最后取出的结果排序是升序,
求SQL语句
求SQL语句,请看附件
tp5的打印最后一条sql
最后一条sql Db::table('contract')->getLastSql()
Thinkphp 打印最近执行的一条SQL语句
不说废话,直接上代码$userModel = D("user"); $user = $userModel->where("id = 33")->find();//就是下面这句了 echo $userModel->getlastsql();
动态SQL的实现原理
转自:http://learnworld.iteye.com/blog/1473491  动态SQL是ibatis框架的一个重要特性,本文将深入分析ibatis框架中动态SQL的实现原理。动态sql的使用参见官方文档:Dynamic SQL。本文使用的ibatis版本为2.3.4。  问题  在介绍动态SQL的实现原理之前,让我们先来思考几个问题。  1. 为什么需要动态SQL?