Db::table($subQuery.' a')
->where('a.name','like','thinkphp')
->order('id','desc')
->select();
需给子查询增加括号
以下是配置子查询的方法
1、使用select方法
当select方法的参数为false的时候,表示不进行查询只是返回构建SQL,例如:
$subQuery = Db::table('think_user')
->field('id,name')
->where('id','>',10)
->select(false);
生成的subQuery结果为:
SELECT `id`,`name` FROM `think_user` WHERE `id` > 10
2、使用fetchSql方法
fetchSql方法表示不进行查询而只是返回构建的SQL语句,并且不仅仅支持select,而是支持所有的CURD查询。
$subQuery = Db::table('think_user')
->field('id,name')
->where('id','>',10)
->fetchSql(true)
->select();
生成的subQuery结果为:
SELECT `id`,`name` FROM `think_user` WHERE `id` > 10
3、使用buildSql构造子查询
$subQuery = Db::table('think_user')
->field('id,name')
->where('id','>',10)
->buildSql();