- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
MYSQL логика одного запроа в котором есть несколько PARENT = лажа помогите
Есть таблица со свойствами. И войств несколько. Как выбрать нужные? у меня идет
AND ( (parent_id=XX ( vlue="green" OR value="yellow" OR value="orange")) AND (parent_id=YY ( vlue="dom" OR value="stena" OR value="garaj"))
)
Вобщем если выбрано одно поле то все ок. Но когда в поиске выбраюи несколько полей то INNER JOIN не происходит т.к. одновременно parent_id не может отличаться. Но OR выдаст много лишнего.
---------- Добавлено 02.11.2012 в 00:10 ----------
ЧЕрез CASE поулчается фигня., тк. выдает оно все равно что OR
т.е. если parent_id = xx то одно условие, если YY то другое, но тогда выдается полный список товаров - все равно что OR
(SELECT scp.`shop_id` FROM `shop_catalog_page` AS `scp`
INNER JOIN properties AS scpp ON scpp.properties_producer_extend = scp.shop_producer_extend AND scpp.properties_product_id = scp.shop_id AND (
CASE
WHEN properties_parentid='10' THEN ( properties_types_value_int='24' OR properties_types_value_int='25' )
WHEN properties_parentid='9' THEN ( properties_types_value_int='13' )
ELSE NULL
END
)
WHERE `shop_producer_`='435'
GROUP BY shop_id
)
...AND
((parent=1 AND values =...) OR (parent=2 AND values=...))
А ещё UNION существует.
А чего не в своей же теме? /ru/forum/750619
Да думал не ответят там, ждал ждал...
Сейчаса UNION почитатю
---------- Добавлено 02.11.2012 в 00:27 ----------
а... так UNION не решает.. Т.к мне нужно так, что бы ЕСЛИ совпадает CASE то сгрупировать их как-то и проверить что бы ID совпавшего товара уже в других CASE тоже совпадал... это я так вижу единственное решение..
В остальном - что case что union - одно и то же, + union базу вешает я слышал.
union базу вешает я слышал.
От кого слышал? Подробности?
* умелыми руками можно и поиском по ключу повесить..
p.s. http://www.mysqldiary.com/optimizing-the-mysql-in-comparison-operations-which-include-the-indexed-field/
Ну да ладно, не это меня интеерсует. UNION тоже не решает задачу... Надо как-то сгрупировать ID и вывести В IN ( )
UNION же вернет все те же значения что и в случае CASE верно?
---------- Добавлено 02.11.2012 в 01:02 ----------
Хехе! вроде решил
SELECT `shop_id`, COUNT(*) as count FROM `sho....
и внизу
GROUP BY shop_cat_page_id
HAVING count > 2
---------- Добавлено 02.11.2012 в 01:06 ----------
Блин) Теперь новая лажа, если выбор только по 1 критерию то не катит..
---------- Добавлено 02.11.2012 в 01:14 ----------
Хм) тоже вроде решил) считаю сколько коунтов надо в соотвествии от количества заполненых полей. Вроде работает! )