thinkPHP6多表查询

 

thinkphp 跨表查询

 

//多表查询
public function index()
{
    $this->title = '用户提现管理';
    $this->transfer = UserTransferService::instance()->amount(0);
    // 创建查询对象
    $query = DataUserTransfer::mQuery()->order('id desc');
    // 用户条件搜索
    $db = DataUser::mQuery()->like('phone,username|nickname#nickname')->db();
    if ($db->getOptions('where')) $query->whereRaw("uuid in {$db->field('id')->buildSql()}");
    // 数据列表处理
    $query->equal('type,status')->dateBetween('create_at')->page();
}

 

生成的sql语句

SELECT * FROM `data_user_transfer` WHERE  ( 
 uuid in ( SELECT `id` FROM `data_user` 
          WHERE  ( `username` LIKE '%小白%' OR `nickname` LIKE '%小白%' ) ) ) 
ORDER BY `id` DESC LIMIT 0,20