从TP 3.0版本开始新增了子查询的支持,有两种使用方式
从TP 3.0版本开始新增了子查询的支持,有两种使用方式
一、使用select
方法,
// 构造子查询
$subQuery = M()->field('id,name')->table('tablename')->group('field')->where($where)->order('status')->select(false);
当select方法的参数为false的时候,表示不进行查询只是返回构建SQL
二、使用buildSql
方法
// 构造子查询
$subQuery = M()->field('id,name')->table('tablename')->group('field')->where($where)->order('status')->buildSql();
调用buildSql
方法后不会进行实际的查询操作,而只是生成该次查询的SQL
语句,然后我们直接在后续的查询中直接调用
利用子查询进行查询
M()->table($subQuery.' a')->where()->order()->select();
构建的子查询SQL
可用于TP的连贯操作方法,比如:table、where等等