可以使用以下 SQL 语句实现:

SELECT p.order_id
FROM orders p
WHERE NOT EXISTS (
  SELECT 1
  FROM order_items c
  WHERE c.order_id = p.order_id
    AND c.amount <> 0
)
GROUP BY p.order_id
HAVING SUM(p.amount) = 0;

这段代码的含义是查找订单中所有子项的金额都为 0 的订单,并返回这些订单的 ID 和总金额。具体实现方式是使用 EXISTS 子查询来筛选出订单子项中金额不为 0 的记录,然后对这些订单 ID 进行分组,并使用 HAVING 子句来筛选出总金额为 0 的订单。

SQL 查询子表多条记录总金额等于 0 的订单

原文地址: https://www.cveoy.top/t/topic/ogEt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录