mysql - 如何从两个查询中减去?

Posted

技术标签:

【中文标题】mysql - 如何从两个查询中减去?【英文标题】:mysql - How to subtract from two queries? 【发布时间】:2021-07-10 17:39:27 【问题描述】:

我有来自 2 个表的 2 个查询(purchase_productssales_products),我想从第一个查询数量减去第二个查询数量。

第一个查询:

$purchase_products = DB::table('purchase_products')
            ->join('products','products.id','purchase_products.product_id')
            ->select('products.product_name','purchase_products.purchase_price',DB::raw("SUM(purchase_products.quantity) as purchase_quantity"))
            ->groupby('purchase_products.product_id','purchase_products.purchase_price')
            ->get();

第二次查询:

 $sales_products = DB::table('sales_products')
            ->select('sales_products.purchase_price',DB::raw("SUM(sales_products.quantity) as sales_quantity"))
            ->groupby('sales_products.product_id','sales_products.purchase_price')
            ->get();

如何从第二个查询中仅减去数量并保持第一个查询的原样?

unique column: product_id & purchase_price

【问题讨论】:

每个查询的结果是什么? 将两个查询加入 product_id 上的子查询并减去 你能举个例子吗? @nbk 【参考方案1】:

根据 laravel 文档,您可以通过 joinSub、leftJoinSub 和 rightJoinSub 连接两个或多个查询表。 你可以看到例子 https://laravel.com/docs/8.x/queries#subquery-joins 对于 substration,您可以使用 joinSub

【讨论】:

以上是关于mysql - 如何从两个查询中减去?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL - 如何自动化视图查询,从最近的日期减去前一天的指标和日期戳最近的数据

如何在一次查询中从购买数量中减去销售数量? [复制]

Mysql:如何从数字中减去百分比

更新查询从库存表中减去相同的销售模型行?

从sql中的表中减去两个日期

如何从两个选择语句中减去值