我需要一些关于 WHERE 子句的帮助 $start date 在代码中进一步设置,并且查询在 Laravel 中针对 SQL 运行时有效。我收到一条错误消息,指出未设置 $startdate。我不确定我什至在正确的地方做。
$query = DB::query()
->select('CC AS CountOfVisits', DB::raw('count(CC) AS Users'))
->fromSub
(function (\Illuminate\Database\Query\Builder $query) {
$query->select('user_id', DB::raw('count(user_id) AS CC '))
->from('mytable')
->where('created_at', '>=', $startdate)
->groupBy('user_id');
}, 'CC')
->groupBy('CC');
$result = DB::connection('mysql2')->select($query->toSql());
最佳答案
我把它放在这里是为了其他找到这个页面的人。需要注意的是,fromSub()
也可以使用 Builder 对象来代替闭包。
$builder = DB::table('mytable')->where('created_at', '>=', $start_date)
->select('user_id', DB::raw('count(user_id) AS CC '))
->groupBy('user_id');
$query = DB::query()
->select('CC AS CountOfVisits', DB::raw('count(CC) AS Users'))
->fromSub($builder, 'temp')
->groupBy('CC');
在我的例子中,我已经有了一个要在子选择中使用的 Builder 对象。
关于php - 在 Laravel 中向嵌套查询添加 where,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58441786/