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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> объединить запросы с разными условиями, [Всего по чуть-чуть] 
:(
    Опции темы
anthonyBoard
Дата 15.9.2008, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 11.8.2008
Где: Russia, Obninsk

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



Здравствуйте!

Возникла необходимость делать такой запрос, в котором данные отбираются по нескольким значениям. Т.е. WHERE parameter=1 OR parameter=2 OR parameter=3.
И нужно сделать ограничение, чтобы строк с каждым из параметров было по 4 (4 строки где parameter=1, 4 - где parameter=2 и 4 - где parameter=3).

Простым LIMIT'ом тут не обойтись, т.к. он лимитирует по всему запросу, а разбивать такой запрос на несколько не очень хочется, потому что велика вероятность, что надо будет потом по 10-20 параметров выбирать, и 20 раз делать отдельные запросы это совсем не красиво.

Пробовал делать с помощью UNION, но в этом случае все равно нельзя задать LIMIT для каждого из параметров отдельно.

Если Вы знаете как решить эту задачу, прошу Вас помочь разобраться с этим мне.

Так же интересует вопрос, возможно ли JOIN'ы лимитировать и одновременно сортировать их отдельно от общего запроса?


Заранее премного благодарен за помощь!

Это сообщение отредактировал(а) anthonyBoard - 15.9.2008, 18:08
PM MAIL   Вверх
Sartorius
Дата 15.9.2008, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



anthonyBoard, и в чем проблема?
PM MAIL ICQ   Вверх
anthonyBoard
Дата 15.9.2008, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 11.8.2008
Где: Russia, Obninsk

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



Прошу прощения, проблема была что нажал ctrl+enter случайно и сообщение отправилось, когда я его еще его не дописал.
PM MAIL   Вверх
skyboy
Дата 15.9.2008, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(anthonyBoard @  15.9.2008,  17:00 Найти цитируемый пост)
все равно нельзя задать LIMIT для каждого из параметров отдельно

можно. почему нельзя?
PM MAIL   Вверх
anthonyBoard
Дата 15.9.2008, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 11.8.2008
Где: Russia, Obninsk

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



А дайте, пожалуйста, пример того как это сделать?

Так же полученные строки надо отсортировать по двум колонкам (parameters, date)

Добавлено через 1 минуту и 38 секунд
А, спасибо!
Сам понял как можно сделать. Просто достаточно в скобки заключить SELECT'ы.

А с JOIN такое возможно?
PM MAIL   Вверх
skyboy
Дата 15.9.2008, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(anthonyBoard @  15.9.2008,  17:30 Найти цитируемый пост)
А с JOIN такое возможно? 

JOIN вместо UNION? а смысл? или в смысле - UNION по результатам JOIN'a? как-то вопрос не понятен абсолютно.
PM MAIL   Вверх
anthonyBoard
Дата 16.9.2008, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 11.8.2008
Где: Russia, Obninsk

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



Не JOIN вместо UNION, а речь вообще о другом запросе, в котором используется LEFT JOIN для объединения данных двух таблиц. И в некоторых случаях по параметру левой таблицы может соответствовать 20 строк из правой и надо эти соответствующие значения из правой таблицы отсортировать по `date` столбцу и лимитировать 4-мя записями.
PM MAIL   Вверх
skyboy
Дата 16.9.2008, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



и что? разве не получается? что не работает?
PM MAIL   Вверх
anthonyBoard
Дата 19.9.2008, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 11.8.2008
Где: Russia, Obninsk

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



Для JOIN'ов не работает почему-то.
PM MAIL   Вверх
skyboy
Дата 20.9.2008, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(skyboy @  16.9.2008,  17:16 Найти цитируемый пост)
что не работает? 

получившийся запрос, сообщение об ошибке - где они?!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




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


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

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