







|
MySQL.RU - Webboard
Вернуться
Многократный JOIN (Roman) 03/02/2011 - 22:34:59
From: Roman - 03/02/2011 - 22:34:59
Subject:Многократный JOIN
-----------------
Приветствую, уважаемые специалисты!
Столкнулся с одной задачкой на оптимизацию, объясню вкратце:
есть две таблицы:
`list` с полями `id`, `name`
`param` с полями `id`, `list_id`, `value`
Здесь идет связь один ко многим (`list`.`id`=`param`.`list_id`)
В таблице `param` хранятся параметры записей из таблицы `list`
Так же имеются значения нужных параметров: $param1=23, $param2='seo' и т.п.
Собственно теперь задача:
Выбрать из таблицы `list` только те записи, для которых значения параметров из таблицы `param` соответствуют заданным параметрам: $param1, $param2 и т.п.
Мое решение:
SELECT `list`.`id`, `list`.`name`
FROM `list`
LEFT JOIN `param` AS p1 ON (p1.`list_id`=`list`.`id`)
LEFT JOIN `param` AS p2 ON (p2.`list_id`=`list`.`id`)
WHERE p1.`id`=1 AND p1.`value`=$param1 AND p2.`id`=2 AND p2.`value`=$param2
Т.е. для каждого значения параметра делаем свою выборку из одной и той же таблицы параметров.
В примере всего два параметра, а представляете что будет, если параметров, хотя бы 15
Вот и хочется узнать мнение экспертов возможно ли оптимизировать такой запрос для большого числа параметров?
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
37901
|
|