php - 在 Laravel 中向嵌套查询添加 where

标签 php mysql laravel

我需要一些关于 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/

相关文章:

php - Laravel Php 从 mysql 查询中获取随机结果

php - 自动递增跳过数字?

sql - 如果计数为 0,则不返回 Mysql 结果

mysql - 一个查询从多个表中检索值

php - 如何在 Laravel 中实现你自己的 Faker provider

php - 在 php 中使用内部联接更新查询

php - 通过假设表 MySQL/PHP 中的列来设置值

php - 从 mysql_fetch_assoc() 以相反的顺序回显

laravel - 流明交易

php - 在 URL POST 请求中发送其他参数以及图像数据