База MySQL
Три таблицы:
orders { OrderID — PK, ... }
items { OID — FK }
states { OID — FK }
Есть разные статусы заказов, которые хранятся в табличке states.
В табличке items — содержимое заказа.
Возникли трудности с запросом.
Нужно выбрать все заказы:
— у которых нет статусов { CLOSED, SENT }
— в содержании которых есть товары с определенной категорией (например category_id = 4) и для этих заказов нет статуса { PERIODIC }
Трудности в том, как мне анализировать содержимое заказа.
Вот пример.
Есть заказ. У него есть статус SENT. У него в содержании помимо прочего есть товары с категорией 4. У заказа нет статуса { PERIODIC } — его нужно выбрать.
Другой заказ. У него есть статус PERIODIC, есть содержимое с разными категориями (в том числе и 4). Но нет статусов { CLOSED, SENT } — надо выбрать
Третий заказ. У него только товары из категории 4. И нет статуса { PERIODIC } — надо выбрать.
Еще заказ. Есть товары где нет категории 4. И нет статусов CLOSED или SENT — тоже надо выбрать.
Вот. Если не очень понятно объяснил — попробую еще раз