![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
anthonyBoard |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: нет Всего: 37 |
anthonyBoard, и в чем проблема?
|
|||
|
||||
anthonyBoard |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 11.8.2008 Где: Russia, Obninsk Репутация: нет Всего: нет |
Прошу прощения, проблема была что нажал ctrl+enter случайно и сообщение отправилось, когда я его еще его не дописал.
|
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
||||
|
||||
anthonyBoard |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 11.8.2008 Где: Russia, Obninsk Репутация: нет Всего: нет |
А дайте, пожалуйста, пример того как это сделать?
Так же полученные строки надо отсортировать по двум колонкам (parameters, date) Добавлено через 1 минуту и 38 секунд А, спасибо! Сам понял как можно сделать. Просто достаточно в скобки заключить SELECT'ы. А с JOIN такое возможно? |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
||||
|
||||
anthonyBoard |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 11.8.2008 Где: Russia, Obninsk Репутация: нет Всего: нет |
Не JOIN вместо UNION, а речь вообще о другом запросе, в котором используется LEFT JOIN для объединения данных двух таблиц. И в некоторых случаях по параметру левой таблицы может соответствовать 20 строк из правой и надо эти соответствующие значения из правой таблицы отсортировать по `date` столбцу и лимитировать 4-мя записями.
|
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
и что? разве не получается? что не работает?
|
|||
|
||||
anthonyBoard |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 11.8.2008 Где: Russia, Obninsk Репутация: нет Всего: нет |
Для JOIN'ов не работает почему-то.
|
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
||||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |