我有下表
ID | PARCEL | STATUS | ORDER_ID
1 1 COMPLETE 1234
2 2 COMPLETE 1234
3 1 COMPLETE 9999
4 2 PENDING 9999
5 3 PENDING 9999
6 1 COMPLETE 1111
7 2 COMPLETE 1111
8 3 COMPLETE 1111
9 1 COMPLETE 3333
10 2 PENDING 3333
我需要选择order_id,ALL PARCEL具有COMPLETE状态。
我正在尝试选择,但不能正常工作
SELECT * FROM table WHERE order_id NOT IN
(SELECT order_id FROM table WHERE status = 'COMPLETE');
查询的答案是
ID | PARCEL | STATUS | ORDER_ID
1 1 COMPLETE 1234
2 2 COMPLETE 1234
6 1 COMPLETE 1111
7 2 COMPLETE 1111
8 3 COMPLETE 1111
答案 0 :(得分:1)
您可以使用NOT EXISTS
子句,因此它会跳过任何状态不是COMPLETE的order_id
SELECT * FROM tableA A1
WHERE NOT EXISTS
( SELECT 1 from tableA A2
where A1.order_id= A2.order_id
and A2.status <> 'COMPLETE'
)
答案 1 :(得分:-1)
从table_parcels中选择*,其中STATUS类似于'COMPLETE';