![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 1 Всего: 28 |
Всем привет!
Не могу правильно составить запрос, что-то голова совсем не варит. Есть две таблицы: cv_catalog_properties - свойства товаров cv_catalog_property_filters - фильтры по свойствам товаров ![]() Мне нужно выбрать cv_catalog_properties.catalog_id для которых фильтры cv_catalog_property_filters.g_p_filter_id соответствую нужному значинию. К примеру нужно выбрать товары по фильтрам 41,33(g_p_filter_id ). Соответственно наш товар catalog_id=16 Следующий запрос нам не подходит:
т.к. выбирается хотяб одно соответствие 41 или 33, а нам нужно 41 и 33 |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 14 Всего: 386 |
по приведенному запросу и таблицам ни один товар не может одновременно иметь фильтры 44 и 33.
Можно объяснить задачу на более бытовом уровне? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 1 Всего: 28 |
не товар а свойтва есть товар с id=16. он имеет 3 свойства(cv_catalog_properties - красным). мне нужно выбрать этот товар или нет. тоесть нужно пройтись по всем его свойствам и узнать имеют ли они фильтры 41 и 33 Вот этот запрос:
выдает: Array ( [0] => Array ( [catalog_id] => 16 [g_p_filter_id] => 41 ) [1] => Array ( [catalog_id] => 16 [g_p_filter_id] => 33 ) [2] => Array ( [catalog_id] => 18 [g_p_filter_id] => 33 ) ) По вышеупомянутым фильтрам находит все свойства товаров. [catalog_id] => 18 - нужно убрать, т.к. у него совпадает только одно свойство. Можно конечно скриптом обработать, но есть еще часть запроса и разбивать на 2 не хочется. Это сообщение отредактировал(а) CruorVult - 3.2.2011, 13:05 |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 14 Всего: 386 |
запрос из конструктора запросов MSAccess, так что ногами за скобки не бить ;) Основной смысл - нужно объединьть по catalod_id 2 таблицы с пропертями и получить все возможные комбинации пропертей. Их уже и фильтровать Это сообщение отредактировал(а) ksnk - 3.2.2011, 16:18 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 1 Всего: 28 |
Жесть
Но как не странно работает А как на счет производительности? может всётаки лучше разбить на 2 запроса. Ну в любом случае спасибо |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |