[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: правильно подсчитать количество записей
udaff.es
добрый день.
есть такой запрос:
SQL
SELECT u.id,u.login,u.empresa,COUNT(pres.id) as num_pres,u.city,u.poblacion,u.rating,COUNT(rec.id) as num_rec
FROM users as u
LEFT JOIN presopuestos as pres ON u.id=pres.user
LEFT JOIN recenzia as rec ON rec.user=u.id
WHERE u.type=1
GROUP BY u.id
ORDER BY u.rating DESC LIMIT 0, 20

COUNT(pres.id) подсчитывается кол-во работ, а COUNT(rec.id) кол-во отзывов.
если отзывов ноль, то все выводится верно, однако если есть отзывы то на выводе получается кол-во отзывов равно кол-ву работ, хотя фактически кол-во отзывов может быть равно любому числу.
как правильно подсчитать в одном запросе? не хочется делать два запроса.



Спустя 47 минут, 16 секунд (19.09.2009 - 14:49) Gram написал(а):
dry.gif

Спустя 1 час, 39 минут, 5 секунд (19.09.2009 - 16:28) FatCat написал(а):
А зачем каша из полей и каунтов?
Раз уж запросили с лимитом диапазон строк, ИМХО, логичней все подсчеты делать средствами пхп в цикле по строкам...

Спустя 23 минуты, 31 секунда (19.09.2009 - 16:51) glock18 написал(а):
попробуй:

SQL
COUNT(DISTINCT rec.id), COUNT(DISTINCT pres.id)

Спустя 1 час, 38 минут, 47 секунд (19.09.2009 - 18:30) udaff.es написал(а):
Цитата (glock18 @ 19.09.2009 - 15:51)
попробуй:

SQL
COUNT(DISTINCT rec.id), COUNT(DISTINCT pres.id)

спасибо, заработало. так и знал что проблема при присоединении таблиц, как сделать не мог догадаться.


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.