[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как поступить в таком случае?
Renden
Есть запрос, вопрос в том можно ли добавить лимит на join-ы? Просто иначе придется делать либо 3 запроса либо ограничивать вывод с помощью php, но фишка в том если будет допустим 1000 записей запрос будет выполнятся достаточно долго, и 3 запроса тоже на быстродейсвии явно позитивно не сыграют (
я пометил куда по логикие надо поставить бы лимиты
SELECT up.page_id,up.name,up.desc,up.image,up.user_id 
FROM ".USERSPAGES_TABLE." up
LEFT JOIN ".USERSPAGES_USERS_VIEW_TABLE." upuv ON up.user_id = upuv.user_creator_id /* LIMIT 5*/
LEFT JOIN ".USERSPAGES_VIEW_TABLE." upv ON up.page_id=upv.page_id /* LIMIT 5*/
WHERE upv.user_id=".USER_ID." OR (upuv.user_allow_id = ".USER_ID." OR up.user_id = ".USER_ID.") /* LIMIT 5*/
ORDER BY up.popularity DESC

Как вообще поступать в таких случаях?



Спустя 1 час, 25 минут, 10 секунд (3.10.2011 - 13:58) linker написал(а):
В JOIN'ах нету лимитов.

Спустя 3 часа, 48 минут, 13 секунд (3.10.2011 - 17:46) imbalance_hero написал(а):
Renden
Общий лимит для записей, но это не выход, тогда простую выборку, создаёшь массив, вторая выборка с WHERE `id` IN (id из первой таблицы) с лимитом, а потом оба массива склеиваешь.

Спустя 14 часов, 34 минуты, 54 секунды (4.10.2011 - 08:21) linker написал(а):
Можно так
... LEFT JOIN (SELECT ... FROM ... LIMIT 5) ...

Спустя 37 минут, 8 секунд (4.10.2011 - 08:59) Renden написал(а):
linker
Хых, спасибо получилось smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.