SQL 查询子表多条记录总金额等于 0 的订单
可以使用以下 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 的订单。
原文地址: https://www.cveoy.top/t/topic/ogEt 著作权归作者所有。请勿转载和采集!