Подсчет числа комментариев к новостям

lantastic

Новичок
Подсчет числа комментариев к новостям

Есть таблица новостей и таблица комментариев к ним. На главной странице выводятся 10 последних новостей, это просто. А вот как подписать к каждой из них число комментариев к ней, не выполняя 10 запросов к MySQL по каждой новости?
 

Raziel[SD]

untitled00
Примерно так:
SELECT count(*) as num_comment, [нужные поля]
FROM news
LEFT JOIN comments ON comments.news_id=news.id
GROUP BY news.id
ORDER BY news.published

вообще для ускорения этого дела можно добавить поле с кол-вом комментариев.
 

SafeWay

Guest
Так же нужна помощь по запросу:
[sql]SELECT
portal_news_cat.category_name as cat, portal_news.title_news,portal_news.author_id, portal_news.text, DATE_FORMAT(portal_news.date, '%e.%m.%Y %H:%i:%s') AS fdate, count(portal_comm.newsid) as numcomm
FROM
portal_news, portal_comm, portal_news_cat
WHERE
portal_news.id=portal_comm.newsid
GROUP BY
portal_news.id
ORDER BY
portal_news.sticked desc, portal_news.date desc
[/sql]
надо добавить:
подсчёт уникальных комментаторов (author_id) из таблицы portal_comm к каждой новости... (у самого не получается...) помогите? :)

-~{}~ 09.09.04 01:48:

Всё, справился сам. извиняйте:
[sql] SELECT
portal_news.id, portal_news.sticked, portal_news_cat.category_name as cat,portal_news.title_news,portal_news.author_id,portal_news.text,DATE_FORMAT(portal_news.date, '%e.%m.%Y %H:%i:%s') AS fdate, count(portal_comm.newsid) as numcomm, count(DISTINCT portal_comm.author_id) as ppl
FROM
portal_news, portal_comm, portal_news_cat
WHERE
portal_news.id=portal_comm.newsid
GROUP BY
portal_news.id
ORDER BY
portal_news.sticked desc, portal_news.date desc
LIMIT
$offset, $newsperpage
[/sql]
Будут поправки?
 
Сверху