TP多条件sql查询,分组排序
$k=M('order a');
$bj=$k->join("left join __CHANGE__ b on b.tb_name='order'and a.order_id=b.tb_id ")
->join("left join __USERS__ c on c.user_id=a.user_id")
->join("left join __NATION__ e on e.code=a.city")
->join("left join __CAR__ f on f.car_id=a.car_category")
->join("left join __OFFER__ d on d.order_id=a.order_id")
->where('a.is_active=1 and a.car_category in ('.$car_category_string.") and a.order_status=0 and a.cut_off_time>".time())
->field('a.order_id,a.car_category,c.nickname,b.change_time as time,c.city as city,a.order_sn,d.offer_sn,e.city,f.scs')
->order("b.change_time")
->select();
发现分组有点乱,添加了 case 分组
$k=M('order a');
$bj=$k->join("left join __CHANGE__ b on b.tb_name='order'and a.order_id=b.tb_id and b.user_id=$this->user_id")
->join("join __USERS__ c on c.user_id=a.user_id")
->join("join __NATION__ e on e.code=a.city")
->join("join __CAR__ f on f.car_id=a.car_category")
->join("left join __OFFER__ d on d.order_id=a.order_id and d.user_id=$this->user_id")
->where('a.is_active=1 and a.car_category in ('.$car_category_string.") and a.order_status=0 and a.cut_off_time>".time())
->field('a.order_id,a.add_time,a.car_category,c.nickname,b.change_time as time,c.city as city,a.order_sn,d.offer_sn,e.city,f.scs,CASE
WHEN b.change_time is null && d.offer_sn IS NULL THEN 0 when b.change_time is NOT null && d.offer_sn IS NULL THEN 1
ELSE 2
END AS flag')
// ->group('d.offer_sn is null')
->order("flag,a.add_time desc")
->select();
mysql 语句
SELECT
a.order_id,
a.add_time,
a.car_category,
c.nickname,
b.change_time AS time,
c.city AS city,
a.order_sn,
d.offer_sn,
e.city,
CASE
WHEN b.change_time is null && d.offer_sn IS NULL THEN when b.change_time is NOT null && d.offer_sn IS NULL THEN
ELSE
END AS flag,
f.scs
FROM
beir_order a
LEFT JOIN beir_change b ON b.tb_name = 'order'
AND a.order_id = b.tb_id
AND b.user_id =
JOIN beir_users c ON c.user_id = a.user_id
JOIN beir_nation e ON e. CODE = a.city
JOIN beir_car f ON f.car_id = a.car_category
LEFT JOIN beir_offer d ON d.order_id = a.order_id
AND d.user_id =
WHERE
(
a.is_active =
AND a.car_category IN (, , , , )
AND a.order_status =
AND a.cut_off_time >
)
ORDER BY
flag,
a.add_time DESC
另外再贴一个恰维后台某个调动下载页面的代码
$model=M('category');
$cat1=$model->where("pid=52")->order("id desc")->select();
foreach ($cat1 as $k=>$value){
$arr[]=$value['id'];
}
$arr=implode(",",$arr);
$condition['sid'] = array('in', $arr);
$cat2=M('article')->Distinct(true)->where($condition)->field('keywords')->select();
//分页开始
$count=M('article')->where($condition)->count();
$p = intval($p) > 0 ? $p : 1;
$pagesize = 10;#每页数量
$offset = $pagesize * ($p - 1);//计算记录偏移量
$page = new \Think\Page($count, $pagesize);
$page = $page->show();
$this->assign('page', $page);
$data=M('article a')->join("left join __CATEGORY__ b on a.sid=b.id")->field("a.*,b.name")->where($condition)->order("aid desc")->limit($offset . ',' . $pagesize)->select();
foreach ($data as $key=>$value){
$arr=$value['content'];
$arr=explode(" ",$arr);
$arr=explode("=",$arr[2]);
$arr=str_replace('"', '', $arr[1]);
$data[$key]['content']=$arr;
}
$this->assign("data",$data);
$this->assign("cat1",$cat1);
$this->assign("cat2",$cat2);
TP多条件sql查询,分组排序的更多相关文章
- SQL语句分组排序,多表关联排序
SQL语句分组排序,多表关联排序总结几种常见的方法: 案例一: 在查询结果中按人数降序排列,若人数相同,则按课程号升序排列? 分析:单个表内的多个字段排序,一般可以直接用逗号分割实现. select ...
- 不简单的SQL查询和排序语句
真不简单!! 一:使用select语句进行查询 语法: SELECT <列名> FROM <表名> [WHERE <查询条件表达式>] [OR ...
- 一条Sql语句分组排序并且限制显示的数据条数
如果我想得到这样一个结果集:分组排序,并且每组限定记录集的数量,用一条SQL语句能办到吗? 比如说,我想找出学生期末考试中,每科的前3名,并按成绩排序,只用一条SQL语句,该怎么写? 表[TScore ...
- SQL查询结果排序
<第二章:查询结果排序>1:以指定的次序返回查询结果条件:显示部门10中员工名字,职位和工资并按照工资升序排列:升序asc 降序descSELECT ename,job,sal FRO ...
- SQL之分组排序取top n
转自:http://blog.csdn.net/wguangliang/article/details/50167283 要求:按照课程分组,查找每个课程最高的两个成绩. 数据文件如下: 第一列no为 ...
- sql语句分组/排序/计算总数/连接等sql语句书写
1.什么是表连接? 答:比如两张表,要获取的信息来自两张表,就需要通过外键的形式进行两张表的连接.最后产后组合信息. 表连接是通过join连接的.表连接说白了就是产生一个大表.表连接也都是用于查询上的 ...
- Sql sever 分组排序
维护人事的时候人事局要求加入一个新功能,详细需求例如以下:加入的人员在同一个单位的依照顺序编号而且单位也要实现时间排序,也就是说有两个排序,第一单位名称排序.先创建的一直在前.然后依照创建时间依次排序 ...
- sql server 分组排序
环境: sql server 2012 语法 select ROW_NUMBER() over(partition BY 分组字段 order by 排序字段),* as rowNums from 表 ...
- Coldfusion Sql查询分组输出
<cfoutput query="myQry" group="date"> #date# <cfoutput> #detail# < ...
随机推荐
- 【原】eclipse使用技巧之代码编辑器分隔窗口
相信很多使用Intellj IDE的朋友对其split screen功能赞赏有加!其实在eclipse中也可以方便地代码编辑多windows.多views!但是隐藏的有点深,很多朋友不常用到,甚至以为 ...
- 【BZOJ4870】[Shoi2017]组合数问题 动态规划(矩阵乘法)
[BZOJ4870][Shoi2017]组合数问题 Description Input 第一行有四个整数 n, p, k, r,所有整数含义见问题描述. 1 ≤ n ≤ 10^9, 0 ≤ r < ...
- PIP源使用国内镜像
对于Python开发用户来讲,PIP安装软件包是家常便饭.但国外的源下载速度实在太慢,浪费时间.而且经常出现下载后安装出错问题.所以把PIP安装源替换成国内镜像,可以大幅提升下载速度,还可以提高安装成 ...
- Java 常用语法和数据结构
Collection 首先Java中的collection都是支持泛型和类型安全 由于Java单根继承, 所以不指定, 可以在collection里面放任何对象, collection会都当作obje ...
- facebook 相似性搜索库 faiss
faiss 个人理解: https://github.com/facebookresearch/faiss 上把代码clone下来,make编译 我们将CNN中经过若干个卷积/激励/池化层后得到的激活 ...
- vue-router 中 meta的用法
vue-router中的meta,也就是类似于面包屑的功能 路由 代码 用这个获取 嗯,就酱~~ 参考链接:https://blog.csdn.net/qq_32963841/article/deta ...
- (数据库之pymysql)
权限管理http://www.cnblogs.com/linhaifeng/articles/7267587.html#_label6一.pymysql模块(安装与查询) 1.安装pymysql(py ...
- CentOS7.1 KVM虚拟化之linux虚拟机安装(2)
一.上传ISO文件到/data/iso下 这里使用CentOS-5.5-i386-bin-DVD.iso 二.安装CentOS5.5 CentOS7.1 安装KVM虚拟机默认磁盘格式为qcow2(推荐 ...
- (4.3)ODBC/OLE DB/ADO概念与使用情况
一.ODBC ODBC的由来 1992年Microsoft和Sybase.Digital共同制定了ODBC标准接口,以单一的ODBC API来存取各种不同的数据库.随后ODBC便获得了许多数据库厂 ...
- 我们是80后 golang入坑系列
现在这个系列,已经开始两极分化了. 点赞的认为风格轻松,看着不困.反之,就有人嫌写的罗里吧嗦,上纲上线.所以善意提醒,里面不只是技术语言,还有段子.专心看技术的,千万别点!别怪我没提醒!差点忘说,版权 ...