Вывести данные только когда все данные в столбце равны определенному значению
подскажите как лучше организовать такой запрос.
Первая таблица с номерами заказов. Вторая таблица с товарами по этим заказам. Использую соединение по номеру заказа.
select * from orders
join items on orders.order = items.order
Но беда в том что мне необходимо выводить заказы только те в которых для примера items = 'яблоко'. Например такой заказ я должен пропустить:
order item
заказ1 яблоко
заказ1 яблоко
заказ1 апельсин
А этот вывести в запросе
order item
заказ2 яблоко
заказ2 яблоко
заказ2 яблоко
Если делаю какой либо фильтр то фильтр отрезает фильтруемую позицию но выводит весь остальной заказ, что не корректно для моей задачи.
Подскажите пожалуйста как это сделать?
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Попробуйте что-то такое:
select order from orders
group by order
having count(dictinct item) = 1
Так вы определите номера заказов, в которых один вид item. Дальше можно сделать join обратно с orders и вывести все такие заказы целиком.