【问题标题】:Laravel querybuilder cant group byLaravel 查询生成器计数分组依据
【发布时间】:2021-07-04 12:11:45
【问题描述】:

此查询与 group by 一起使用

$data = DB::select(DB::raw("SELECT  SUM(pending) as total ,  datediff(NOW(), created_at) 
as maturity FROM `admin_case_info` WHERE deleted_at is NULL group by maturity "));

但是当我加入 2 张桌子时。

$data = DB::select( DB::raw("SELECT admin_case_info.case_type, admin_case_info.case_status, SUM(admin_case_info.pending) as total, 
datediff(NOW(), admin_case_info.created_at) as maturity FROM admin_case_info 
JOIN users_mws on users_mws.id = admin_case_info.users_mws_id
JOIN users on users.id = users_mws.user_id
 WHERE users.status NOT IN ('Dumped', 'Dumped2')
AND admin_case_info.deleted_at IS NULL group by maturity") );

它不起作用。我需要将config/database 严格修改为false 才能使其工作,我不想这样做。我该怎么办?谢谢

【问题讨论】:

  • group by maturity 应扩展为按所有非聚合选定字段分组,即GROUP BY maturity, admin_case_info.case_type, admin_case_info.case_status

标签: php mysql database laravel laravel-query-builder


【解决方案1】:

你应该使用相同的表达式来分组按成熟度没有正确使用。

$data = DB::select( DB::raw("SELECT admin_case_info.case_type, admin_case_info.case_status, SUM(admin_case_info.pending) as total, 
datediff(NOW(), admin_case_info.created_at) as maturity FROM admin_case_info 
JOIN users_mws on users_mws.id = admin_case_info.users_mws_id
JOIN users on users.id = users_mws.user_id
 WHERE users.status NOT IN ('Dumped', 'Dumped2')
AND admin_case_info.deleted_at IS NULL group by datediff(NOW(), admin_case_info.created_at)") );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-04
    • 2019-09-12
    • 2022-01-08
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 2023-03-24
    • 2014-04-21
    相关资源
    最近更新 更多