You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

查询orders表总数量与assigned_orders表已分配总量不匹配的记录

需求说明

我有两张表orders和assigned_orders:

  • 创建订单时,订单及其对应数量存入orders表
  • 订单会按一定数量分配给不同供应商,比如orders表中某订单总数量为500,其中300分配给供应商'A',100分配给供应商'B',剩余100未分配

现在需要从这两张表中查询出指定格式的记录。


表结构及数据

orders表

idcustomer_namequantity
1cust 1500
2cust 2700

assigned_orders表

idorder_idassigned_quantity
11300
21100

预期查询结果

idorder_idquantityassigned_quantity
11500400

解决方案

可以通过左连接结合**聚合函数SUM()**实现需求,同时处理无分配记录的订单场景:

SELECT 
    o.id,
    o.id AS order_id,
    o.quantity,
    COALESCE(SUM(ao.assigned_quantity), 0) AS assigned_quantity
FROM orders o
LEFT JOIN assigned_orders ao ON o.id = ao.order_id
GROUP BY o.id, o.quantity;

关键说明

  • LEFT JOIN:保证即使订单没有任何分配记录(如order_id=2),也会被纳入结果集
  • SUM(ao.assigned_quantity):汇总每个订单的总已分配数量
  • COALESCE():将无分配记录时的NULL值转换为0,避免结果出现空值
  • GROUP BY:按订单ID和总数量分组,确保每个订单仅返回一条汇总记录

内容的提问来源于stack exchange,提问作者Kamlesh Ghate

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 23:06:25