|
|
|
| Задачка, ну прямо, как из вашей учебной базы:
Есть две таблицы: в одной категории товаров, в другой сами товары, естественно, через внешний ключ всё связано.
Но сгруппировать надо только те товары по категориям, где внутри категории ни у одного товара нет флага "в избытке".
Если есть таой флаг хотя бы у одного товара в категории, то вся категория исключается из выборки. | |
|
|
|
|
|
|
|
для: Eugene77
(04.04.2012 в 08:23)
| | А как связаны таблицы и что за флаг "в избытке"? | |
|
|
|
|
|
|
|
для: cheops
(04.04.2012 в 12:40)
| | >А как связаны таблицы и что за флаг "в избытке"?
Связаны самым обычным образом.
Первичный ключ types.id таблицы категорий types служит внешним ключом для таблицы goods.
Но в таблице goods помимо всего прочего, есть флаги (ENUM), которые товаровед проставляет к каждому товару: (устарело, на распродажу, в избытке и др.)
Если просто надо было выбрать товары с флагами по категориям - это понятно,
но надо именно те категории, в товарах которых данный флаг ни разу не найден. | |
|
|
|
|
|
|
|
для: Eugene77
(04.04.2012 в 15:22)
| | Вам сильно производительный запрос нужен? Может извлечь категории, где хотя бы один такой товар есть, а потом просто воспользоваться NOT IN (имеются в виду вложенные запросы)? | |
|
|
|
|
|
|
|
для: cheops
(04.04.2012 в 15:46)
| | В таблице почти 100 000 строк, правда, все поля числовые, ну и ENUM | |
|
|
|
|
|
|
|
для: Eugene77
(04.04.2012 в 15:54)
| | Это в товарах или в категориях? Если в товарах, не страшно. | |
|
|
|
|
|
|
|
для: cheops
(04.04.2012 в 15:56)
| | >Это в товарах или в категориях? Если в товарах, не страшно.
Это в товарах, но категории мелкие, меньше, чем по 10 товаров, часто по 2.
То есть в NOT IN получится около 20 000 элементов.
Нормально? | |
|
|
|