mysql - Laravel Raw 选择,仅选择 count(*) 作为聚合
问题描述
我正在尝试使用DB
构建器从数据库中检索一些数据:
DB::table('g_r_n_s')
->leftJoin('g_r_n_items', 'g_r_n_s.id', '=', 'g_r_n_items.id')
->leftJoin('purchase_l_p_o_items', 'purchase_l_p_o_items.id', '=', 'g_r_n_items.purchase_lpo_item_id')
->leftJoin('supplier_quotation_items', 'supplier_quotation_items.id', '=', 'purchase_l_p_o_items.quotation_item_id')
->leftJoin('supplier_payments', 'supplier_payments.grn_id', '=', 'g_r_n_s.id')
->leftJoin('supplier_quotations', 'supplier_quotations.id', '=', 'supplier_quotation_items.supplier_quotation_id')
->where('supplier_quotations.payment_type', 'credit')
->select('g_r_n_s.*', DB::raw('DATEDIFF(now(), g_r_n_s.date) AS days_diff'))
->where(DB::raw('DATEDIFF('. $now .', g_r_n_s.date)'), '>=', 'supplier_quotations.credit_period')
->groupBy('g_r_n_s.id')->orderBy('days_diff', 'desc')->paginate(25);
执行的查询是错误的,它只count(*) as aggregate
从表中选择。
SELECT COUNT(*) AS AGGREGATE
FROM `g_r_n_s`
LEFT JOIN `g_r_n_items`
ON `g_r_n_s`.`id` = `g_r_n_items`.`id`
LEFT JOIN `purchase_l_p_o_items`
ON `purchase_l_p_o_items`.`id` = `g_r_n_items`.`purchase_lpo_item_id`
LEFT JOIN `supplier_quotation_items`
ON `supplier_quotation_items`.`id` = `purchase_l_p_o_items`.`quotation_item_id`
LEFT JOIN `supplier_payments`
ON `supplier_payments`.`grn_id` = `g_r_n_s`.`id`
LEFT JOIN `supplier_quotations`
ON `supplier_quotations`.`id` = `supplier_quotation_items`.`supplier_quotation_id`
WHERE `supplier_quotations`.`payment_type` = ?
AND DATEDIFF(2020-01-01, g_r_n_s.date) >= ?
GROUP BY `g_r_n_s`.`id` [credit, supplier_quotations.credit_period]
我究竟做错了什么?
解决方案
推荐阅读
- thinking-sphinx - 出现错误:sharetribe 安装上的未知键名“docinfo”
- javascript - Serverless - 获取创建的云端资源 URL 并将其用作环境变量
- flutter - Flutter CupertinoPicker 不适合屏幕
- python-3.x - 如何在 Minidom 中为特定节点使用 getElementsByTagName
- javascript - 如何创建在其字段名称中包含运行索引的表单数据?
- c - OpenMP 输出不正确的答案
- php - 为了使感谢页面有效
- css - 输入溢出不可见
- amazon-web-services - 如何在 gitlab CI/CD 管道中启动新的 EC2 实例
- octobercms - 十月 CMS 未安装