







|
MySQL.RU - Webboard
Вернуться
Нужна помощь в оптимизации запросов. (Роман) 14/02/2007 - 14:19:32
Re: Нужна помощь в оптимизации запросов. (Роман) 14/02/2007 - 14:21:04
Re: плачу 10 WMZ тому кто реализует... (Роман) 14/02/2007 - 21:56:32
Re: плачу 10 WMZ тому кто реализует... (Boris) 15/02/2007 - 14:58:18
Re: плачу 10 WMZ тому кто реализует... (Роман) 20/02/2007 - 06:26:44
From: Роман - 14/02/2007 - 14:19:32
Subject:Нужна помощь в оптимизации запросов.
-----------------
Уважаемые господа! Обыскал весь форум, перерыл учебники, не могу найти решения своей задачи.
Есть две таблицы:
Ссылки (links)
lid text url siteid
1 Текст1 URL1 1
2 Текст2 URL1 2
3 Текст3 URL1 2
4 Текст4 URL1 1
5 Текст5 URL1 3
Сайты (sites)
id name cat
1 Сайт1 1
2 Сайт2 2
3 Сайт3 1
4 Сайт4 1
5 Сайт5 3
Необходимо при заданной cat (категория) вывести из таблицы несколько URL, причем так, чтобы все относились к разным сайтам.
Т.е. получить примерно след:
lid text url siteid
1 Текст1 URL1 1
2 Текст2 URL1 2
5 Текст5 URL1 3
Пока у меня получилось сделать так:
$Q = "SELECT id FROM sites WHERE cat=$cat ORDER BY RAND() LIMIT $pp;";
Далее обрабатываем полученный результат кодом и составляем группу новых запросов.
while ($ar=mysql_fetch_array($r))
{
if ($Q2!="") $Q2.= " UNION ";
$Q2.= "SELECT * FROM links WHERE lid=".$ar["id"];
}
В итоге например для двух сайтов получаем запрос из нескольких объединенных селектов.
Таким образом у меня для вывода 4х ссылок требуется 5 селектов :(.
Никто не знает как можно оптимизировать запрос? Возможно с изменением структуры таблиц (все уже перепробовал).
Заранее благодарен!
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
30795
|
|