У меня есть таблица SQL, которая состоит из деталей заказа.
Пример таблицы
order_id | item_type | stock_code | price_code
----------------------------------------------
1 | S | 0005-01 | NULL
1 | P | NULL | PRC-1
1 | S | 0004 | NULL
2 | S | 0005-02 | NULL
2 | S | 0004 | NULL
Я пытаюсь вернуть все order_id, в которых ордер содержит код акции, начинающийся с 0005, но не код цены, начинающийся с PRC
Моя попытка
SELECT order_id
FROM order_detail as ordDetail
WHERE EXISTS(
SELECT *
FROM order_detail as ordDetail2
WHERE ordDetail2.order_id = ordDetail.order_id
AND stock_code LIKE '0005-%'
AND price_code NOT LIKE 'PRC%'
)
Почему-то, похоже, игнорируется аргумент price_code NOT LIKE?
Ожидаемые результаты
order_id
--------
2
2
Мне бы очень хотелось, чтобы order_id тоже были уникальными, если бы это было возможно: /