Intereting Posts
выбор последовательных чисел с использованием SQL-запроса Рекурсивное регулярное выражение с искаженным текстом? Получение "ArrayArray" Активация модели плагина не работает в cakephp 2.3 с помощью ACL для торта Как использовать flash-переменную codeigniter? Как вы можете проверить, находитесь ли вы на главной странице в Joomla? Продолжайте находить инъекционный тарабарщик PHP в моих файлах темы WordPress Правильное кодирование символов для отображения «& acirc; & # 128; & # 157;»? Закрытие сеанса после выполнения запроса к базе данных Устранение неполадок, связанных с моделью в контроллере laravel Запрошенный PHP-расширение intl отсутствует в вашей системе (SonataAdminBundle) в Symfony2 записывать в файл csv в php Передача двух разных форм с внешней кнопкой отправки не работает должным образом Как добавить регистр case для добавления перерыва после каждой записи? Удаление инъекции с использованием регулярного выражения PHP: как читать текущую дату / время с сервера, а не из php.ini

Смешивание столбцов GROUP (MIN (), MAX (), COUNT (), …) без столбцов GROUP является незаконным, если нет предложения GROUP BY

Я использую старый скрипт php и имею ошибку с этим запросом. Поскольку я не имею опыта с mysql, я не мог это исправить.

"SELECT COUNT(p.postid) AS pid, p.*, t.* FROM ".TABLE_PREFIX."post AS p INNER JOIN ".TABLE_PREFIX."thread AS t ON (p.threadid = t.threadid) WHERE p.username='".$uname."'" 

ошибка

Смешивание столбцов GROUP (MIN (), MAX (), COUNT (), …) без столбцов GROUP является незаконным, если нет предложения GROUP BY

Я надеюсь, что кто-то может мне помочь

Как и ошибка, вы не можете ВЫБРАТЬ функцию агрегата, такую ​​как COUNT, без явной (без групповой) группировки строк (с помощью GROUP BY) или путем простого выбора агрегата. Чтобы выразить это в менее технических терминах – вы сообщаете базе данных, «Посмотрите все сообщения этого имени пользователя, а также те потоки, к которым они принадлежат, и количество сообщений», и база данных отвечает вам », количество сообщений в чем?".

Поэтому вам нужно быть более конкретным. Если вы действительно хотите:

  • Если вы действительно не заботитесь обо всех отдельных сообщениях, и вам просто нужны потоки и количество сообщений этого пользователя в потоке, удалите p.* Из SELECT и добавьте GROUP BY t.threadid в конец запрос.
  • Если вам нужно общее количество сообщений, а также все сообщения и потоки, просто подсчитайте строки результатов.
  • Если вы хотите, чтобы общее количество сообщений для всех пользователей в выбранных вами потоках сделало запрос намного более сложным, потому что вам нужно будет снова присоединиться к post чтобы получить общее количество сообщений.
  • Если вы вообще не хотите, чтобы счет был вообще, удалите его из запроса. 🙂