| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > Count + Group by + Limit |
| Автор: igorold 1.3.2010, 13:16 | ||||||||
Есть такой Запрос:
Смысл такой, к Таблице Problems присоединены записи Таблицы DocsAtt к одной записи в Problems может соответствовать от 0 и большее количество таблицы DocsAtt. Мне в запросе необходимо подсчитать сколько всего записей из DocsAtt присоединено к записи Problems. Вышеуказанный запрос дает такой результат:
т.е. тут Limit действует до group by Если Limit убираем, получаем верный результат:
Limit убирать не хочется, т.к. в зависимости от выборки может быть много записей. Как сделать, чтобы Limit правильно работал? Добавлено через 4 минуты и 41 секунду Самое интересное, если я убираю Distinct :
Запрос работает правильно, но дело в том, что я упростил запрос и в нем несколько left join, по еще одному из которых тоже может быть больше одной записи, в этом случае count(DocsAtt.i) дает неверный результат. |
| Автор: Akina 1.3.2010, 13:27 | ||
Сделай запрос без лимита и оберни в лимит.
Но на большом массиве будут тормоза - это однозначный temporary table. С другой стороны, мне непонятно, что именно надо лимитить... |
| Автор: igorold 1.3.2010, 13:38 |
| Спасибо, работает! У пользователя по умолчанию есть в настройках какое количество строк формируемой таблицы выводить на экран. Их может быть очень много и для удобства выводится в данном случае - по 8, с учетом всех шапок и многострочности каждой записи - как раз экран. Некоторым, кому надо без листания, ставят - 100 и для обычной работы этого хватает, но т.к. метод универсальный, то приходится делать такие конструкции, потому что другие предпочитают листать ... |