有时候我们的模型链式操作无法满足子查询的情况 下面介绍一下子查询的用法
<?php
namespace App\Model;
use EasySwoole\Mysqli\QueryBuilder;
use EasySwoole\ORM\DbManager;
class DemoModel extends \EasySwoole\ORM\AbstractModel{
protected $tableName = 'user';
public function getData(){
$queryBuilder = new QueryBuilder();
$sub = $queryBuilder::subQuery();
$sub->fields('name,age');
$sub->where('name','dddd');
$sub->get($this->tableName) ;//设置表名
$sub_sql = $sub->getLastQuery(); //获取相关sql
$where['status'] = [1,'='];
$res = DbManager::getInstance()-invoke(function ($client) use ($sub_sql,$where ) {
$model = self::invoke($client);
$model->where($where);
$m->tableName("({$sub_sql})")
$model->field('count(*) as c')
->all();
//获取结果
$result = $model->lastQueryResult()->getResult();
//var_dump($model->lastQuery()->getlastQuery()); //执行的SQL语句
return $result;
});
}
}