如何使用laravel计算特定的表列

时间:2017-10-24 06:53:21

标签: laravel

我这里有一个laravel查询:

DB::table('notifications')
    ->leftJoin('domains', 'domains.domain', '=', 'notifications.data->via_domain')
    ->select('notifications.data->via_domain as domain_name')
    ->groupBy('notifications.data->via_domain')
    ->get();

这显示表格'通知'之间存在的域名。和'域名'。但是,我想在'通知'中计算notifications.notifiable_id字段。由:

DB::table('notifications')
    ->leftJoin('domains', 'domains.domain', '=', 'notifications.data->via_domain')
    ->selectRaw('count(notifications.notifiable_id), notifications.data->via_domain')
    ->get();

但是它在SQL语法中显示错误。

  

(您的SQL语法有错误;请查看手册   对应于您的MySQL服务器版本,以便使用正确的语法   近

via_domain from notifications left join domains on
domains.domain = not at line 1 (SQL: select
count(notifications.notifiable_id), notifications.data->via_domain
from notifications left join domains on domains.domain =
notifications.data->'$."via_domain"')')

感谢你的帮助,minna-san。

2 个答案:

答案 0 :(得分:0)

我已经知道了!

这是我的代码:

DB::table('notifications')->leftJoin('domains', 'domains.domain', '=', 'notifications.data->via_domain')
                    ->select('notifications.data->via_domain as domainName', DB::raw('COUNT(notifications.notifiable_id) AS leadsCount'))
                    ->groupBy('notifications.data->via_domain')
                    ->get();

这会产生一个显示域名及其leadsCount的数组。

谢谢大家。

答案 1 :(得分:0)

例如,假设我们有如下数据

enter image description here

Couponview::whereBetween('created_at', [$start_date, $end_date])
                ->select('store_id', DB::raw('COUNT(store_id) as store_count'))
                ->groupBy('store_id')
                ->orderBy(DB::raw('COUNT(store_id)'), 'DESC')
                ->take(8)
                ->get();

然后我们得到了 OutPut 就像下面的示例图片 enter image description here