在多行之一中查找没有该项目的订单

问题描述 投票:0回答:1

我正在尝试编写一个查询来查找哪些订单没有湿巾商品;但是,我遇到了困难,因为我对 sql 不太熟悉。

ORDER ID    ORDER NUMBER   ITEM        ITEM ID
00FF6248    2404902        Sponge      87f5 
00FF6248    2404902        Soap        4D1C
1F210331    2404905        Gloves      2fb0
1F210331    2404905        Paper       4dbb
1F210331    2404905        Bags        ad1e
6112f371    2404904        Wipes       B94A
6112f371    2404904        Detergent   62DF
6112f371    2404904        Soap        4D1C

我尝试进行查询

WHERE ITEM <> 'WIPES'
GROUP BY ORDER ID
(不确定这是否是正确的路径),但我仍然收到所有订单。 期望的结果是:

ORDER ID
00FF6248
1F210331

希望有人能指出我正确的方向。提前谢谢您。

sql
1个回答
0
投票

如果我理解正确,您可以使用

DISTINCT
NOT EXISTS
来获得您预期的结果。

带有子查询的

NOT EXISTS
可以帮助我们过滤不等于的
ORDER ID
WIPES

SELECT DISTINCT "ORDER ID"
FROM T t1
WHERE NOT EXISTS (
    SELECT 1
    FROM T tt
    WHERE t1."ORDER ID" = tt."ORDER ID" and tt.ITEM = 'Wipes'
)
© www.soinside.com 2019 - 2024. All rights reserved.