Laravel Query构建器表连接

时间:2017-10-24 15:38:08

标签: mysql laravel laravel-eloquent

我需要将其转换为Laravel Query Builder:

原始SQL:

Select * from requests where user_id in (select user_id from profiles where total_sales <= 10);

这是我的查询构建器:

public static function apply(Builder $builder, $value)
{
 return $builder->where('user_id', function($query) use ($value) {
        $query->where('profiles.total_sales','<=',$value);
    });
}

这不起作用。我错过了什么?

PS:这是大型动态查询的一部分,这是不起作用的部分,我只发布这部分查询。

1 个答案:

答案 0 :(得分:0)

我在@ljubadr提供的链接的帮助下创建了查询:

public static function apply(Builder $builder, $value){ return $builder->whereIn('user_id', function($query){
            $query->select('user_id')
                ->from(with(new UserProfile)->getTable())
                ->where('profiles.total_sale','<', 1);
        });

}

谢谢@ljubadr。