首页 > 解决方案 > 仅当所有子对象都符合条件时才选择

问题描述

有一个订单表和一个内容表。每个订单包含存储在内容表中的多个项目,并以订单号连接。订单表包含订单号。内容表包含多个项目,每个记录具有订单号和项目状态列。我需要一个查询,该查询将输出不同的订单号,其中所有项目都应具有已完成的状态。

我试过这个

SELECT O.O_NUM FROM ORDER O, CONTENT C WHERE C.STATUS=DONE 

但这将返回订单号,即使任何一个内容项状态已完成。

标签: sql

解决方案


SELECT Orders.OrderNumber
FROM Orders
WHERE NOT EXISTS ( SELECT NULL
                   FROM Content
                   WHERE Orders.OrderNumber = Content.OrderNumber
                     AND Content.Status != 'Done' )

推荐阅读