Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сложный запрос с множественным Limit 
:(
    Опции темы
Somebi
Дата 17.3.2010, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 8.8.2009

Репутация: нет
Всего: нет



Нужна помощь. Не могу придумать, как сделать следующий запрос.

Есть две таблицы ads(объявления) и map_regions(регионы стран)

В таблице ads есть колонка с id регионов из таблицы map_regions

id region text и другие поля
1 1 ...
2 2

region_id region_name 
1 ...
2 ...

Нужно вытащить из таблицы объявлений(ads) 28 последних объявлений, чтобы выбралось по 4 для каждого region_id из таблицы(map_regions) и чтобы по region_id 6,7,8 брались, только 4 объявления.

В итоге получается 24 объявления по 4 для каждого региона страны и 4 для трех указанных вручную регионов.

На данный момент запрос выглядит следующим образом:

http://www.copypastecode.com/24546/

Заранее огромное спасибо. Так как этот запрос производится на главной странице, то он сильно поможет в плане производительности и скорости загрузки страницы.
PM MAIL   Вверх
Akina
Дата 17.3.2010, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Малопонятно...
Сколько регионов? всего 9, с id от 0 до 8?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Somebi
Дата 17.3.2010, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 8.8.2009

Репутация: нет
Всего: нет



Цитата(Akina @ 17.3.2010,  18:37)
Малопонятно...
Сколько регионов? всего 9, с id от 0 до 8?

да 9 регионов

По каждому региону надо достать 4 новых объявления
PM MAIL   Вверх
Akina
Дата 17.3.2010, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(Somebi @  17.3.2010,  19:57 Найти цитируемый пост)
9 регионов
По каждому региону надо достать 4 новых объявления 

При этом регионы с 6 по 8 считать одним - т.е. для них 4 объявления суммарно - и неважно, что все могут относиться к только одному из них, верно?
Если да - я бы ввёл колонку группы регионов и брал по 4 месса именно для группы.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Somebi
Дата 18.3.2010, 03:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 8.8.2009

Репутация: нет
Всего: нет



Я конечно могу циклом сделать 9 запросов к базе, но это тупо будет. Неужели нельзя одним запросом сделать такую выборку?
PM MAIL   Вверх
Zloxa
Дата 18.3.2010, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 33
Всего: 161



Код

select * from table where region = 0 order by .. limit 4
union all select * from table where region = 1 order by .. limit 4
union all select * from table where region = 2 order by .. limit 4
union all select * from table where region = 3 order by .. limit 4
union all select * from table where region = 4 order by .. limit 4
union all select * from table where region = 5 order by .. limit 4
union all select * from table where region = 6 order by .. limit 4
union all select * from table where region = 7 order by .. limit 4
union all select * from table where region = 8 order by .. limit 4



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0718 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.