假设有两个表:orders(订单表)和 order_items(订单明细表),其中 order_items 表中存储了每个订单的商品明细和金额。我们可以使用 EXISTS 子查询来查询子表中多条记录的总金额是否等于 0。

查询语句如下:

SELECT o.order_id, o.order_date
FROM orders o
WHERE EXISTS (
  SELECT 1
  FROM order_items oi
  WHERE oi.order_id = o.order_id
  GROUP BY oi.order_id
  HAVING SUM(oi.amount) = 0
);

这个查询语句会返回订单表中所有存在订单明细金额总和为 0 的订单的订单号和订单日期。在子查询中,我们首先使用 WHERE 子句将 order_items 表中与当前订单匹配的明细筛选出来,然后使用 GROUP BY 子句对明细按照订单号进行分组,最后使用 HAVING 子句筛选出金额总和为 0 的订单。在主查询中,我们使用 EXISTS 子句判断是否存在满足子查询条件的记录,如果存在则返回该订单的信息。

SQL 使用 EXISTS 查询子表多条记录总金额是否为 0

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

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