我是Laravel的新手。我正在使用这个laravel 5应用程序,但无法尝试执行如下查询。

select * from carts inner join users on carts.manager_id = users.id
where cart_num like "e%" OR name like "e%"
having region = (select region from users where id = 3);


编辑

该查询的目的是获得与管理员位于同一区域的管理者手推车(因此,subselect的原因。id是管理员的id)

编辑

我得出这样的结果:

return Cart::join('users', 'carts.manager_id', '=', 'users.id')
             ->where('cart_num', 'like', $match . '%')
             ->orWhere('name', 'like', $match . '%')
             ->having('region', '=', function ($query) use ($id) {
                 return $query->select('region')->where('id', '=', $id);
            })
            ->get();


关于如何完善having子句的任何想法。我收到错误,类Closure的对象无法转换为字符串。谢谢

最佳答案

我想这就是你需要的

return Cart::join('users','carts.manager_id','=','users.id')
            ->where('cart_num', 'like', $match)
            ->orWhere('name', 'like', $match."%")
            ->having('region','=', $region)
            ->get();

关于php - 如何在Laravel 5中执行包含对 Eloquent 关系的子查询的联接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33320102/

10-14 18:34
查看更多