可以使用以下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使用EXISTS查询子表多条的总金额等于0

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

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