Модераторы: skyboy

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> умный фильтр, Отсеять ненужные фильтры 
V
    Опции темы
yukodev
Дата 9.11.2013, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 29.6.2012

Репутация: нет
Всего: нет



Здравствуйте.
Фильтры для интернет магазина.
products(id,name.....)
parameters (id,name)
parameters_values (id,parameter_id,value)
products_parameters(product_id,parameter_id,parameters_vallue_id)

Сам механизм фильтрации реализован.
 Вот запрос (выбраны значения трех параметров)
Код

SELECT `produst`.*  FROM `products`  LEFT JOIN products_parameters as pr1 
ON (`pr1`.`product_id` = `products`.`id`) LEFT JOIN products_parameters as pr2 
ON (`pr2`.`product_id` = `products`.`id`) LEFT JOIN products_parameters as pr3 
ON (`pr3`.`product_id` = `products`.`id`) 
WHERE `products`.`watch` = 1 AND `products`.`language_id` = '1' 
AND (`pr1`.`parameters_value_id` in (11)) 
AND (`pr2`.`parameters_value_id` in (73)) 
AND (`pr3`.`parameters_value_id` in (81,80)).........


Не могу понять как реализовать отсеивание ненужных фильтров.
Например кликнули по параметру размер xxl - фильтр все правильно отфильтровал но также нужно не выводить фильтры по выбору которого не будет найден хоть один результат.

Пример market.yandex.ua/guru.xml?CMD=-RR=9,0,0,0-VIS=70-CAT_ID=432460-EXC=1-PG=10&hid=91013 - после выбора фильтра ненужные отсеиваются

Подскажите идею.......

Это сообщение отредактировал(а) yukodev - 11.11.2013, 16:57
PM MAIL   Вверх
yukodev
  Дата 12.11.2013, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 29.6.2012

Репутация: нет
Всего: нет



Наверно плохо объяснил.
Есть структура фильтры-товары:
user posted image

Запрос на фильтрацию товаров - выбрано 4 значения 3-х параметров
Код

SELECT `products`.* FROM `products` 
LEFT JOIN products_parameters as pr1 
ON (`pr1`.`product_id` = `products`.`id`) 
LEFT JOIN products_parameters as pr2 
ON (`pr2`.`product_id` = `products`.`id`) 
LEFT JOIN products_parameters as pr3 
ON (`pr3`.`product_id` = `products`.`id`) 
WHERE `products`.`watch` = 1 
AND `products`.`language_id` = '1' 
AND (`pr1`.`parameters_value_id` in (11,10)) 
AND (`pr2`.`parameters_value_id` in (44)) 
AND (`pr3`.`parameters_value_id` in (15))...

В фильтрах я выводил все параметры и выбирая параметры товары правильно фильтровались, но были случаи когда набор фильтров не находил товаров и пользователь получал сообщение "по вашему запросу ничего не найдено".
Стала задача во время филтрацbи также отсеять фильтра которые не найдут хотя бы один результат.
Долго думал, получилось сделать вариант при котором в фильтрах будут выводиться только те, параметры и их значения,  которые есть в уже отфильтрованых товаров:

Код

SELECT `parameters_values`.* FROM `parameters_values` 
LEFT JOIN `products_parameters` 
ON (`products_parameters`.`parameters_value_id` = `parameters_values`.`id`) 
LEFT JOIN `products` ON (`products_parameters`.`product_id` = `products`.`id`) 
LEFT JOIN products_parameters as pr1 
ON (`pr1`.`product_id` = `products`.`id`) 
LEFT JOIN products_parameters as pr2 
ON (`pr2`.`product_id` = `products`.`id`) 
LEFT JOIN products_parameters as pr3 
ON (`pr3`.`product_id` = `products`.`id`) 
WHERE `products`.`watch` = 1
AND (`pr1`.`parameters_value_id` in (11,10)) 
AND (`pr2`.`parameters_value_id` in (44)) 
AND (`pr3`.`parameters_value_id` in (15)) 
GROUP BY `parameters_values`.`id` ORDER BY `parameters_values`.`value` ASC (1)

Этот запрос дает нам отфильтрованый набор параметров который неможет привести  в дальнейшем к сообщению "по вашему запросу ничего не найдено".
Но отсеялись часть фильтров по выбору которых налшись бы еще товары.
Например фильтр:

Тип
   -девочка
   -мальчик
   -новорожденный
Размер
   -1
   -2
   -3
.....
В последнем случаи отсейки фильтров - при выборе Типа "девочка"  останутся фильтра
Тип
   -девочка
   -мальчик
   -новорожденный
Размер
   -1
   -2
   -3
Но мальчик и новорожденный должны остаться потому, что они добавят результатов.
Помогите оптимизировать отсеивание фильтров!

250wmr тому кто сможет решить задачу (торг уместен)  smile

Это сообщение отредактировал(а) yukodev - 12.11.2013, 12:10
PM MAIL   Вверх
Akina
Дата 12.11.2013, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 453



Уж коли кросс-постишь - то давай ссылки на другие форумы.
А коли готов оплачивать работу - так обращайся сразу во фриланс.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
yukodev
Дата 21.11.2013, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 29.6.2012

Репутация: нет
Всего: нет



Поменял запрос результат тот же, может идеи у кого то есть?
Код

SELECT count(*) as total, pv.parameters_value_id, parameters_values.value 
FROM `products`  
JOIN products_parameters as pv ON (`pv`.`product_id` = `products`.`id`) 
JOIN `parameters_values` ON (`parameters_values`.`id` = `pv`.`parameters_value_id`) 
WHERE `products`.`watch` = 1 
#-------------------Обработка опций первого параметра
AND EXISTS (SELECT 1 FROM products_parameters pv0 WHERE `pv0`.`product_id` = `pv`.`product_id` 
AND `pv0`.`parameters_value_id` IN ('11')) 
#-------------------Обработка опций второго параметра
AND EXISTS (SELECT 1 FROM products_parameters pv1 WHERE `pv1`.`product_id` = `pv`.`product_id` 
AND `pv1`.`parameters_value_id` IN ('235', '236')) GROUP BY `parameters_value_id` 


Это сообщение отредактировал(а) yukodev - 21.11.2013, 22:56
PM MAIL   Вверх
yukodev
Дата 22.11.2013, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 29.6.2012

Репутация: нет
Всего: нет



PM MAIL   Вверх
Zloxa
Дата 22.11.2013, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3470
Регистрация: 12.9.2008

Репутация: 33
Всего: 161



Цитата(yukodev @  9.11.2013,  23:22 Найти цитируемый пост)
Подскажите идею.......

Завязывайте с EAV


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
yukodev
Дата 22.11.2013, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 29.6.2012

Репутация: нет
Всего: нет



Цитата(Zloxa @  22.11.2013,  12:16 Найти цитируемый пост)
Завязывайте с EAV 

А как решить задачу умного фильтра? Пример: _http:filter.kombox.ru/tv/   на чистом mysql, без solar и прочего которое не работает на обычном хостинге без выделенного сервера
PM MAIL   Вверх
Zloxa
Дата 22.11.2013, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3470
Регистрация: 12.9.2008

Репутация: 33
Всего: 161



Цитата(yukodev @  12.11.2013,  13:01 Найти цитируемый пост)
во время филтрацbи также отсеять фильтра которые не найдут хотя бы один результат.


Код

AND (`pr2`.`parameters_value_id` = 44 
      or not exists (select null 
                       from products_parameters as sps 
                       where sps.parameters_value_id = 44
                         )
    ) 


Цитата(yukodev @  22.11.2013,  13:23 Найти цитируемый пост)
А как решить задачу умного фильтра?

для начала тщательно ее формальзовать, затем лишь выразить языком программирования smile

Это сообщение отредактировал(а) Zloxa - 22.11.2013, 13:28


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
yukodev
Дата 22.11.2013, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 29.6.2012

Репутация: нет
Всего: нет



Цитата(Zloxa @  22.11.2013,  13:12 Найти цитируемый пост)
код SQL

AND (`pr2`.`parameters_value_id` = 44 
      or not exists (select null 
                       from products_parameters as sps 
                       where sps.product_id = 'products'.id 
                         and sps.parameters_value_id = 44)
    ) 


Код

SELECT `parameters_values`.* FROM `parameters_values` 
JOIN `products_parameters` ON (`products_parameters`.`parameters_value_id` = `parameters_values`.`id`) 
JOIN `products` ON (`products_parameters`.`product_id` = `products`.`id`) 
JOIN products_parameters as pr1 ON (`pr1`.`product_id` = `products`.`id`) 
WHERE `products`.`watch` = 1 
AND (
`pr1`.`parameters_value_id` in (943) 
AND (
`pr1`.`parameters_value_id` = '943' 
OR NOT EXISTS (SELECT null FROM products_parameters sps WHERE `sps`.`product_id` = 'products.id' AND `sps`.`parameters_value_id` = '943')
)
) GROUP BY `parameters_values`.`id` ORDER BY `parameters_values`.`value` ASC

Так?..... Не помогло - та же выдача получилась.
PM MAIL   Вверх
Zloxa
Дата 22.11.2013, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3470
Регистрация: 12.9.2008

Репутация: 33
Всего: 161



Цитата(yukodev @  22.11.2013,  14:32 Найти цитируемый пост)
Не помогло 

ясен пень. Я же дословно перевел то что вы говорите. А говорите вы странные вещи, тяжело потдающиеся осмысленю.

попробую включить телепатию и предложить вам

Код

WHERE `products`.`watch` = 1
AND (`pr1`.`parameters_value_id` in (11,10)) 
or (`pr2`.`parameters_value_id` in (44)) 
or (`pr3`.`parameters_value_id` in (15)) 

Возможно вам следует просто ранжировать выдачу выставить вперед те записи, которые имеют большее попадание в критерии фильтра по "или"?


если это не катит, покажите на таком примере что вы ожидаете получить.
Код

товар  признак1 признак2 признак3
-------------------------------------
1           1       1       1     
            2       2       2
-------------------------------------
2           3       3       3
            4       4       4
-------------------------------------
3           5       5       5
            6       6       6


Что, по вашему, мнению на этих данных должен вернуть ваш запрос:
Код

AND (`pr1`.`parameters_value_id` in (1,2)) 
AND (`pr2`.`parameters_value_id` in (3)) 
AND (`pr3`.`parameters_value_id` in (5)) 



Это сообщение отредактировал(а) Zloxa - 22.11.2013, 13:53


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
yukodev
Дата 22.11.2013, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 29.6.2012

Репутация: нет
Всего: нет



Цитата(Zloxa @  22.11.2013,  13:49 Найти цитируемый пост)
Что, по вашему, мнению на этих данных должен вернуть ваш запрос:
код SQL
1:
2:
3:
AND (`pr1`.`parameters_value_id` in (1,2)) 
AND (`pr2`.`parameters_value_id` in (3)) 
AND (`pr3`.`parameters_value_id` in (5)) 



Это запрос возвращает все актуальные значения параметров для выбранных товаров упуская те которые могут добавить результатов в выборку товаров
Альтернативный запрос который дает тод же результат :
Код

SELECT count(*) as total, pv.parameters_value_id, parameters_values.value 
FROM `products`  
JOIN products_parameters as pv ON (`pv`.`product_id` = `products`.`id`) 
JOIN `parameters_values` ON (`parameters_values`.`id` = `pv`.`parameters_value_id`) 
WHERE `products`.`watch` = 1 
#-------------------Обработка опций первого параметра
AND EXISTS (SELECT 1 FROM products_parameters pv0 WHERE `pv0`.`product_id` = `pv`.`product_id` 
AND `pv0`.`parameters_value_id` IN ('11')) 
#-------------------Обработка опций второго параметра
AND EXISTS (SELECT 1 FROM products_parameters pv1 WHERE `pv1`.`product_id` = `pv`.`product_id` 
AND `pv1`.`parameters_value_id` IN ('235', '236')) GROUP BY `parameters_value_id` 


Это сообщение отредактировал(а) yukodev - 22.11.2013, 15:57
PM MAIL   Вверх
Zloxa
Дата 22.11.2013, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3470
Регистрация: 12.9.2008

Репутация: 33
Всего: 161



Цитата(yukodev @  22.11.2013,  16:50 Найти цитируемый пост)
Это запрос возвращает все актуальные значения параметров для выбранных товаров упуская те которые могут добавить результатов в выборку товаров

Вы не мудрите, лучше пальцем покажите перечислите позиции, которые по вашему мнению должны вернуться.


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
yukodev
Дата 22.11.2013, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 29.6.2012

Репутация: нет
Всего: нет



Данные:
Код



DROP TABLE IF EXISTS `parameters`;

CREATE TABLE `parameters` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

/*Data for the table `parameters` */

LOCK TABLES `parameters` WRITE;

insert  into `parameters`(`id`,`name`) values (1,'Параметр1'),(2,'Параметр2');

UNLOCK TABLES;

/*Table structure for table `parameters_values` */

DROP TABLE IF EXISTS `parameters_values`;

CREATE TABLE `parameters_values` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `parameter_id` int(11) NOT NULL,
  `value` text COLLATE utf8_unicode_ci,
  PRIMARY KEY (`id`,`parameter_id`),
  KEY `fk_parameters_values_parameters1` (`parameter_id`),
  CONSTRAINT `fk_parameters_values_parameters1` FOREIGN KEY (`parameter_id`) REFERENCES `parameters` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

/*Data for the table `parameters_values` */

LOCK TABLES `parameters_values` WRITE;

insert  into `parameters_values`(`id`,`parameter_id`,`value`) values (1,1,'опция_1_1'),(2,1,'опция_1_2'),(3,2,'опция_2_1'),(4,2,'опция_2_2'),(5,2,'опция_2_3'),(6,2,'опция_2_4');

UNLOCK TABLES;

/*Table structure for table `products` */

DROP TABLE IF EXISTS `products`;

CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `watch` tinyint(1) NOT NULL DEFAULT '1',
  `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

/*Data for the table `products` */

LOCK TABLES `products` WRITE;

insert  into `products`(`id`,`watch`,`name`) values (1,1,'продукт1'),(2,1,'продукт2'),(3,1,'продукт3'),(4,1,'продукт4'),(5,1,'продукт5'),(6,1,'продукт6');

UNLOCK TABLES;

/*Table structure for table `products_parameters` */

DROP TABLE IF EXISTS `products_parameters`;

CREATE TABLE `products_parameters` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `product_id` int(11) NOT NULL,
  `parameter_id` int(11) NOT NULL,
  `parameters_value_id` int(11) DEFAULT '0',
  `value` double DEFAULT NULL,
  PRIMARY KEY (`id`,`product_id`,`parameter_id`),
  KEY `fk_products_parameters_values1` (`parameters_value_id`),
  KEY `fk_products_eshop_menus_products_products1` (`product_id`),
  KEY `fk_products_eshop_menus_products_parameters1` (`parameter_id`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

/*Data for the table `products_parameters` */

LOCK TABLES `products_parameters` WRITE;

insert  into `products_parameters`(`id`,`product_id`,`parameter_id`,`parameters_value_id`,`value`) values (1,1,1,1,NULL),(2,1,2,3,NULL),(3,2,1,1,NULL),(4,2,2,4,NULL),(5,3,1,2,NULL),(6,3,2,3,NULL),(7,4,1,2,NULL),(8,4,2,5,NULL),(9,5,1,1,NULL),(10,5,2,6,NULL),(11,6,1,2,NULL),(12,6,2,3,NULL);

UNLOCK TABLES;

 


Первая выборка - входящая опция "опция_1_1" параметра "Параметр1":
Код


SELECT COUNT(*) AS total, pv.parameters_value_id, parameters_values.value 
FROM `products`  
JOIN products_parameters AS pv ON (`pv`.`product_id` = `products`.`id`) 
JOIN `parameters_values` ON (`parameters_values`.`id` = `pv`.`parameters_value_id`) 
WHERE `products`.`watch` = 1 
#-------------------Обработка опций первого параметра
AND EXISTS (SELECT 1 FROM products_parameters pv0 WHERE `pv0`.`product_id` = `pv`.`product_id` 
AND `pv0`.`parameters_value_id` IN ('1')) 
GROUP BY `parameters_value_id` 
 


Результат:
Код

total    parameters_value_id    value
3    1    опция_1_1
1    3    опция_2_1
1    4    опция_2_2
1    6    опция_2_4
  


Ожидаемый результат:
Код

total    parameters_value_id    value
3    1    опция_1_1
3    2    опция_1_2#Эта опция выпала но она нужна так как она добавит результатов если ее выбрать См.Потенциальный результат.
1    3    опция_2_1
1    4    опция_2_2
1    6    опция_2_4
  


Потенциальный рез.

Код

SELECT COUNT(*) AS total, pv.parameters_value_id, parameters_values.value 
FROM `products`  
JOIN products_parameters AS pv ON (`pv`.`product_id` = `products`.`id`) 
JOIN `parameters_values` ON (`parameters_values`.`id` = `pv`.`parameters_value_id`) 
WHERE `products`.`watch` = 1 
#-------------------Обработка опций первого параметра
AND EXISTS (SELECT 1 FROM products_parameters pv0 WHERE `pv0`.`product_id` = `pv`.`product_id` 
AND `pv0`.`parameters_value_id` IN ('1','2')) 
GROUP BY `parameters_value_id` 

total    parameters_value_id    value
3    1    опция_1_1
3    2    опция_1_2
3    3    опция_2_1
1    4    опция_2_2
1    5    опция_2_3
1    6    опция_2_4

 


То что опция выпала это понятно - выпала потому, что отфильтровались все опции которых нет в наборе продуктов полученых таким запросом. Нужно оптимизировать запрос так чтоб он не откидал "потенциально" нужные опции.
Живой пример работы поожого фильтра: filter.kombox.ru/tv/

---------------------------Пример 2-----------------------
Выборка опций 2-го параметра:
Код


SELECT COUNT(*) AS total, pv.parameters_value_id, parameters_values.value 
FROM `products`  
JOIN products_parameters AS pv ON (`pv`.`product_id` = `products`.`id`) 
JOIN `parameters_values` ON (`parameters_values`.`id` = `pv`.`parameters_value_id`) 
WHERE `products`.`watch` = 1 
#-------------------Обработка опций первого параметра
AND EXISTS (SELECT 1 FROM products_parameters pv0 WHERE `pv0`.`product_id` = `pv`.`product_id` 
AND `pv0`.`parameters_value_id` IN ('1')) 
#-------------------Обработка опций второго параметра
AND EXISTS (SELECT 1 FROM products_parameters pv1 WHERE `pv1`.`product_id` = `pv`.`product_id` 
AND `pv1`.`parameters_value_id` IN ('3')) GROUP BY `parameters_value_id` 
 


Результат:

Код

total    parameters_value_id    value
1    1    опция_1_1
1    3    опция_2_1

 

Ожидаемый результат:

Код

3    1    опция_1_1#Выбрано
3    2    опция_1_2#Выпало(добавит результатов при выборе)
1    3    опция_2_1#Выбрано
1    4    опция_2_2#Выпало(добавит результатов при выборе)
1    6    опция_2_4#Выпало(добавит результатов при выборе)


Добавлено @ 17:34
Еще словами как это должно работать:
1) Фиксируем опцию одного параметра, например "опция_1_1", тогда мы должны выбрать те опции, которые сочитаются с опция_1_1 других параметров а также все остальные опции первого параметра (которому пренадлежит опция_1_1)

2)Фиксируем два параметра, например, "опция_1_1" + "опция_2_1" (при этом опция_2_1 доступна для выбора так как она сочитается с опция_1_1 также незабываем что это опции разных параметров) тогда мы должны выбрать  опции которые сочитаются с опция_1_1 первого параметра и опция_2_1 второго параметра а также остальные опции второго параметра которые сочитаются с опция_1_1 первого параметра

3) Фиксируем 2 опции 1-го параметра  опция_1_1(230 товаров), опция_1_2 (120 товаров) получаем 350 товаров(для примера). Дальше во втором параметре нам допустимы опции которые сочитаются и с опция_1_1 и с опция_1_2. Например опция_2_1 сочитается с опция_1_1 а опция_2_2 сочитается с опцией_1_2. и Если  наш следующий выбор будет опция_2_1 то все товары опции_1_2 не покажутся а сама опция станет неактивной(заблокированной) но будет отмечена(на результат не повлеяет но если мы решим еще выбрать опция_2_2 то она опция_1_2 разблокируется) 
------------------------------------------
Пример для понимания логики:
_http://filter.kombox.ru/tv/ 
Параметр частота обновления выбираем 200 и 400 Гц.
Дальше параметр Формат телевизора выбираем 21:9 - 400Гц заблокировалась. Дальше добавляем Формат 16:9 - 400Гц разблокировалась.
Вот такая логика зависимости.


Это сообщение отредактировал(а) yukodev - 22.11.2013, 17:36
PM MAIL   Вверх
Zloxa
Дата 22.11.2013, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3470
Регистрация: 12.9.2008

Репутация: 33
Всего: 161



yukodev, и все таки я тупой. Я не понимаю чего вы мне столькобукв понаписали, зачем вы мне пишите запросы, которые делают не то что вы хотите, я не понимаю что у вас откуда выпадает и чем выпавшее отличается от выбранного.

Я привел пример данных. Просто перечислите мне те товары, которые должны отобраться из того набора.


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Zloxa
Дата 22.11.2013, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3470
Регистрация: 12.9.2008

Репутация: 33
Всего: 161



Цитата(yukodev @  22.11.2013,  18:32 Найти цитируемый пост)
Вот такая логика зависимости.

В конце концов мы выбираем по (частота_обновления in (200,400) and Формат_телевизора in (21:9,16:9))

Для того чтобы посчитать количество по опциям, после применнения фильтра, группируемся собственно по типу опции и считаем count(disticnt товар)



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.1967 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.