thinkphp group by 组内排序写法

thinkphp

group by 组内排序写法

有时候会遇到需要对分组内 group by 的数据进行排序。比如,一对多联表查询后,列表显示 A 表,需要关联显示 B 表的最新一条数据。

这个时候就是比较不常见的 组内排序 group by 的例子了。


直接上例子:

$list=M('order')->field('a.is_refunded,a.is_closed,a.total,a.express,a.refunded_money,b.*')->alias('a')->join('work_order b ON a.order_code = b.order_code')->order('b.id desc')->group('a.order_code')->select();

$list=M('order')->field('a.is_refunded,a.is_closed,a.total,a.express,a.refunded_money,b.*')->alias('a')->join('(select * from work_order order by id desc) b ON a.order_code = b.order_code')->order('b.id desc')->group('a.order_code')->select();

关键点:

查询语句的对象 (select * from bear_work_order order by id desc) 代替了原生表对象 work_order

就是这么简单,灵感来源于 http://bbs.csdn.net/wap/topics/80276095

select * from StudentGrade a where (select count(1) from studentGrade where subId=a.subId and grade>=a.grade)<=2

虽然是乱七八糟的看不懂,但是很明显 mysql 是支持 对象的反复操作的嘛

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。