







|
MySQL.RU - Webboard
Вернуться
Помогите правильно сформировать запрос (dropoff) 28/10/2012 - 19:20:10
Re: Помогите правильно сформировать запрос (Akina) 28/10/2012 - 22:38:51
Re: Помогите правильно сформировать запрос (dropoff) 28/10/2012 - 23:07:15
From: dropoff - 28/10/2012 - 19:20:10
Subject:Помогите правильно сформировать запрос
-----------------
Доброго времени суток.
Никак не могу понять, как происходит отсеивание в Я.М.
К примеру http://market.yandex.ru/guru.xml?CMD=-RR=9,0,0,0-VIS=70-CAT_ID=160043-EXC=1-PG=10&hid=91491
В правой колонке выбираю "Тип" и жму "смартфон/коммуникатор"
Мне вернуло 392 товара
Далее, там же выбираю "Тип" "телефон"
и мне вернуло 908 товаров.
Т.е. в параметре "Тип" все его значения суммируются.
Но если я выберу "Тип корпуса" -> "классический", то мне вернет 775 товаров.
Т.е. он отсеял товары, которые не совпали.
Но при этом, если я выберу еще "Тип корпуса" -> "раскладушка", то вернет 815 товаров.
Получается так, что параметры суммируют значения друг-друга, но отсеивают среди других.
У меня сейчас выборка только по самим значениям. Т.е. не по "Тип", а по "телефон"
Условие запроса собираю в начале в массив (это если есть $vals)
foreach($vals AS $k => $v)
{
$add[] = " p.pi IN (
SELECT params_pi FROM products_params WHERE param_pi = p.pi AND param_vals = '".(int)$v."'
) ";
}
p.pi - это ID товаров
params_pi - это ID товаров которые связаны с значениями параметров.
И так при каждом выборе значения, например "Тип корпуса" -> "классический" + "раскладушка"....
ID самих параметров я не использую, так как не нужно было. Но сейчас понял, что без них никак.
И вот никак не могу понять как фильтровать так же как на маркете.
Мне помогли немного и написали кода http://pastie.org/4907145
Пробовал делать, в итоге видимо запрос не правильный.
Пример http://sqlfiddle.com/#!2/0e3f7/3
Помогите поправить запрос пожалуйста. Уже не много дней пытаюсь понять как сделать.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
41822
|
|