|
0 Всего найдено: 6
vvvvictor2007
Сообщение
13/12/2010 18:03
Копия темы
MySQL. В поисках решения... Здравствуйте! Бьюсь над оптимизацией уже не первый день... Сейчас встала такая задача. Есть 2 таблицы items(id_item,name) и item_property(id_prop,id_item,name,value). Допустим есть несколько товаров-чайников(в первой таблице 2 записи), у них есть параметры:name=высота,name= ширина, name=объем(во второй таблице 6 записей). Нужно вывести список товаров, которые соответствуют данным поиска (например, ширина<500 и объем>2000). Каким образом можно составить запрос? Буду рад любой помощи =)
terrainc
Сообщение
13/12/2010 18:17
Копия темы
В модели EAV для выборки по нескольким атрибутом требуется столько же JOIN-нов таблицы (саму на себя)
abbat
Сообщение
13/12/2010 19:07
Копия темы
Ну как-то так: SELECT `items`.* FROM `items` INNER JOIN `item_property` AS `item_property_1` ON `items`.`id_item` = `item_property_1`.`id_item` AND `item_property_1`.`name` = 'ширина' AND `item_property_1`.`value` < 500 INNER JOIN `item_property` AS `item_property_2` ON `items`.`id_item` = `item_property_2`.`id_item` AND `item_property_2`.`name` = 'объем' AND `item_property_2`.`value` > 2000; P.S. И, да, об оптимальности здесь говорить не приходится с ростом таблицы все встанет раком аки Bitrix.
vvvvictor2007
Сообщение
13/12/2010 19:15
Копия темы
0
Огромное спасибо! Такой вариант меня вполне устроит, так как база довольно небольшая и количество параметров у товара не будет превышать 10 |
Выразить восторг, поругаться или предложить что-нибудь можно на форуме |
Для обсуждения этого сервиса так же есть темы на фрилансе по поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал" |