Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011
Помог: 3 раз(а)
Есть 3 таблицы (приложены файлом).Как мне выбрать товар у которого в таблице product_attribute есть и запись со значением поля attribute_id = 1 и запись со значением поля attribute_id = 5.OR не подходит так как если отсутствует запись с каким либо атрибутом, то запись не нужно выбирать.Как это делается?Я знаю что это элементарно.Но как? Прикреплено изображение (Нажмите для увеличения)
Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011
Помог: 3 раз(а)
DeepVarvar пишет:
А если атрибута три а не два?
Как вариант тоже может быть
----- $i = 0;
$i = $i++ + ++$i; ?
DeepVarvar
Отправлено: 26 Июля, 2013 - 02:07:36
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Так что? Выбрать все продукты у которых максимум атрибутов?
Например у продукта 1 три атрибута, а пр 2 тоже три, а пр 3 только один.
Выбрать первый и второй продукты?
Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011
Помог: 3 раз(а)
DeepVarvar пишет:
Так что? Выбрать все продукты у которых максимум атрибутов?
Например у продукта 1 три атрибута, а пр 2 тоже три, а пр 3 только один.
Выбрать первый и второй продукты?
выбери продукт у которого присутствует и атрибут 1 и атрибут 5.Хотя бы так Дальше я пойму сам.Но если в таблице product_attribute нет хотя бы одного из них то не нужно выбирать.Можно так же добавить атрибут 6.По идее должен выбрать продукт с id 10
----- $i = 0;
$i = $i++ + ++$i; ?
DeepVarvar
Отправлено: 26 Июля, 2013 - 02:32:02
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011
Помог: 3 раз(а)
Благодарю!То есть мне нужно одну и ту же таблицу объединить join и уже ставить дополнительный AND?
Насчет второй статьи я еще слабоват понимать выражение загнать в 128 битное число.Примерно понял что там идет сильная оптимизация запроса с кэшем.Так? (Добавление)
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
DeepVarvar, esterio, старая как мир хеш-карта. Суть как раз в том, что задача сводится к первичной фильтрации - то есть путём построения карты удаётся выбрать первичное множество строк, гораздо меньшее, чем вся исходная таблица - и уже потом из этого множества делается полноценный (соответствующий всем критериям) выбор. Не сработает при низкой релевантности запроса. Иными словами, если есть дипапзон [a..b] и в таблице значение поля изменяется в диапазоне [A..B], то эффективность построения карты стремится к нулю при a->A, b->B. Для битового ключа - эффективность стремится к нулю при стремлении выборки чекбоксов к (bin)md5(1{128}). Впрочем, любой другой индекс в этом случае тоже покажет плохой результат (FULL SCAN), но удивляться и не приходится - такова суть низкой релевантности.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.