Forum Webscript.Ru
Общие => Базы данных => Тема начата: Tryapkonator от 16 Марта 2005, 18:26:24
-
БД MySQL.
Выдераются данные из таблицы новостей. Так же LEFT JOIN креплю таблицы комментариев и рейтинга по индексу новости. Нужно сосчитать количество комментариев и количество голосов. Делаю примерно так
COUNT(comm.id_news), COUNT (reyt.id_news) в итоге получаю в обоих полях одно значение. Если убираю один LEFT JOIN и COUNT то все, естевственно работает. Новостей на странице может быть много и возможности использовать 2 запроса нет =(
-
нельзя юзать вложенные запросы, т.к. в нашем случае id новости не известно заранее. Помогите пожалуйсто, ничего не понимаю =(
-
во-первых, пока можно сделать несколькими запросами и оптимизировать позже.
во-вторых, надо знать структуру твоих таблиц.
в-третьих, ИМХО надо
... COUNT(comm.comment_id), COUNT(reyt.reyt_id) ..... GROUP BY news.id_news
-
во-первых, пока можно сделать несколькими запросами и оптимизировать позже.
Да, так и сделал.
COUNT(comm.comment_id), COUNT(reyt.reyt_id) ..... GROUP BY news.id_news
Так и было.
Впринципе, вроде, не сильно возврасла нагрузка, но блин какая-то непонятка. Да, кстати, я получаю одно значение, равное сумме 2-х COUNT()... Это тоже пока мне не понять. Раз 15 перечитал ман по COUNT() и так и не понял в чем ошибка.
P.S. Ура =) Макс пришел =)
-
Tryapkonator
Хорошо что сумму, обычно произведение...
COUNT(DISTINCT comm.comment_id), COUNT(DISTINCT reyt.reyt_id)
-
Phoinix
Не понял как, но работает =))) В мане как-то вяло все это описано. Большое спасибо