我正在尝试编写一个查询来查找哪些订单没有湿巾商品;但是,我遇到了困难,因为我对 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
希望有人能指出我正确的方向。提前谢谢您。
如果我理解正确,您可以使用
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'
)