Общие > Базы данных

несколько COUNT() в одном запросе

(1/2) > >>

Tryapkonator:
БД MySQL.
Выдераются данные из таблицы новостей. Так же LEFT JOIN креплю таблицы комментариев и рейтинга по индексу новости. Нужно сосчитать количество комментариев и количество голосов. Делаю примерно так
COUNT(comm.id_news), COUNT (reyt.id_news) в итоге получаю в обоих полях одно значение. Если убираю один LEFT JOIN и COUNT то все, естевственно работает. Новостей на странице может быть много и возможности использовать 2 запроса нет =(

Tryapkonator:
нельзя юзать вложенные запросы, т.к. в нашем случае id новости не известно заранее. Помогите пожалуйсто, ничего не понимаю =(

Макс:
во-первых, пока можно сделать несколькими запросами и оптимизировать позже.
во-вторых, надо знать структуру твоих таблиц.
в-третьих, ИМХО надо
... COUNT(comm.comment_id), COUNT(reyt.reyt_id) ..... GROUP BY news.id_news

Tryapkonator:

--- Цитировать ---во-первых, пока можно сделать несколькими запросами и оптимизировать позже.
--- Конец цитаты ---

Да, так и сделал.


--- Цитировать ---COUNT(comm.comment_id), COUNT(reyt.reyt_id) ..... GROUP BY news.id_news
--- Конец цитаты ---

Так и было.
Впринципе, вроде, не сильно возврасла нагрузка, но блин какая-то непонятка. Да, кстати, я получаю одно значение, равное сумме 2-х COUNT()... Это тоже пока мне не понять. Раз 15 перечитал ман по COUNT() и так и не понял в чем ошибка.

P.S. Ура =) Макс пришел =)

Phoinix:
Tryapkonator

Хорошо что сумму, обычно произведение...

COUNT(DISTINCT comm.comment_id), COUNT(DISTINCT reyt.reyt_id)

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии