ThinkPHP3.2-子查询

从TP 3.0版本开始新增了子查询的支持,有两种使用方式

一、使用select方法,

1
2
// 构造子查询
$subQuery = M()->field('id,name')->table('tablename')->group('field')->where($where)->order('status')->select(false);

当select方法的参数为false的时候,表示不进行查询只是返回构建SQL

二、使用buildSql方法

1
2
// 构造子查询
$subQuery = M()->field('id,name')->table('tablename')->group('field')->where($where)->order('status')->buildSql();

调用buildSql方法后不会进行实际的查询操作,而只是生成该次查询的SQL语句,然后我们直接在后续的查询中直接调用

利用子查询进行查询

1
M()->table($subQuery.' a')->where()->order()->select();

构建的子查询SQL可用于TP的连贯操作方法,比如:table、where等等

坚持原创技术分享,您的支持将鼓励我继续创作!