【问题标题】:How to get sale order list (transaction) in Laravel?如何在 Laravel 中获取销售订单列表(交易)?
【发布时间】:2023-03-22 11:26:01
【问题描述】:

我有两个数据库表,“产品”和“交易”都很低

**Product.php**

product_id   product_name
--------------------------
1           |      A
2           |      B
3           |      C

**Transactions.php**

transaction_id       product_id
--------------------------------
1                |       1
2                |       1
3                |       1
4                |       3
5                |       2
6                |       3

来自事务表。所以销售订单(最佳销售)是 [A C B]。我尝试了类似下面的方法但不起作用。

$saleTtransaction = SaleTransaction::select('product_id', DB::raw('count(*) as total'))->groupBy('product_id')->get();

感谢所有 cmets,谢谢。

【问题讨论】:

    标签: php laravel orm eloquent


    【解决方案1】:

    这是您可能想要使用的原始查询:

    SELECT
        p.product_name,
        COUNT(t.product_id) AS total
    FROM products p
    LEFT JOIN transactions t
        ON p.product_id = t.product_id
    GROUP BY
        p.product_name
    ORDER BY
        total DESC;
    

    这是上面的 Laravel 代码:

    $saleTtransaction = DB::table("products p")
        ->select("p.product_name",
                 DB::raw('COUNT(t.product_id) AS total'))
        ->join("transactions t", "p.product_id", "=", "t.product_id")
        ->groupBy("p.product_name")
        ->orderBy('total', 'desc')
        ->get();
    

    这假设每个产品总是有一个唯一的名称。如果不是,那么从技术上讲,我们应该按产品名称和 ID 进行聚合。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-07
      • 1970-01-01
      • 1970-01-01
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 2021-03-31
      相关资源
      最近更新 更多