Неправильное отображение списка постов в списке блогов

#1 28 февраля 2010 в 20:31
Собственно хоть здесь посчитайте количество записей которое пишется в списке и количество реально записей.

вот собственно сам запрос
  1. SELECT u.id, b. * , u.id AS uid, u.nickname AS author, u.login as author_login,
  2. COUNT(p.id) as records,
  3. IFNULL( SUM( r.points ) , 0 ) AS points
  4. FROM cms_users u, cms_blogs b
  5. LEFT JOIN cms_blog_posts p ON p.blog_id = b.id
  6. LEFT JOIN cms_ratings r ON r.item_id = p.id AND r.target = 'blogpost'
  7. WHERE b.user_id = u.id
Есть у кого соображения? Я пришел только к такому исправлению, но это ничего не дало:
COUNT(p.user_id) as records,
#2 28 февраля 2010 в 21:23
maxisoft, так у тебя все нормально что ли отображается? Тогда я ничего не понимаю…
#3 1 марта 2010 в 14:07
а вот и ответ:
надо в запросе вместо COUNT(p.id) ставить COUNT( DISTINCT p.id ) и все правильно отображается.
Или выводить расчет постов в отдельный запрос, ибо очень тяжелый получился. Покумекаю с индексами, если докумекаю/не забуду — отпишусь здесь.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.