| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > объединить запросы с разными условиями |
| Автор: anthonyBoard 15.9.2008, 18:00 |
| Здравствуйте! Возникла необходимость делать такой запрос, в котором данные отбираются по нескольким значениям. Т.е. 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'ы лимитировать и одновременно сортировать их отдельно от общего запроса? Заранее премного благодарен за помощь! |
| Автор: Sartorius 15.9.2008, 18:02 |
| anthonyBoard, и в чем проблема? |
| Автор: anthonyBoard 15.9.2008, 18:11 |
| Прошу прощения, проблема была что нажал ctrl+enter случайно и сообщение отправилось, когда я его еще его не дописал. |
| Автор: skyboy 15.9.2008, 18:24 | ||
можно. почему нельзя? |
| Автор: anthonyBoard 15.9.2008, 18:30 |
| А дайте, пожалуйста, пример того как это сделать? Так же полученные строки надо отсортировать по двум колонкам (parameters, date) Добавлено через 1 минуту и 38 секунд А, спасибо! Сам понял как можно сделать. Просто достаточно в скобки заключить SELECT'ы. А с JOIN такое возможно? |
| Автор: skyboy 15.9.2008, 20:08 |
JOIN вместо UNION? а смысл? или в смысле - UNION по результатам JOIN'a? как-то вопрос не понятен абсолютно. |
| Автор: anthonyBoard 16.9.2008, 10:58 |
| Не JOIN вместо UNION, а речь вообще о другом запросе, в котором используется LEFT JOIN для объединения данных двух таблиц. И в некоторых случаях по параметру левой таблицы может соответствовать 20 строк из правой и надо эти соответствующие значения из правой таблицы отсортировать по `date` столбцу и лимитировать 4-мя записями. |
| Автор: skyboy 16.9.2008, 18:16 |
| и что? разве не получается? что не работает? |
| Автор: anthonyBoard 19.9.2008, 23:46 |
| Для JOIN'ов не работает почему-то. |
| Автор: skyboy 20.9.2008, 11:04 |
получившийся запрос, сообщение об ошибке - где они?! |