如图所示订单表 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
类似
SELECT * FROM (
select id,ifnull(pid,id) pid ,ddate from tttest
) t order by ddate desc,pid,id
当然,如果不同订单时间有交叉这个有点问题,需要在内部语句组合key