Страница 1 из 1

Выборка тем форума запросом на MySQL

Добавлено: 10 дек 2005, 14:07
Morfius
Есть две таблицы:
sections с темами сообщений и messages с сообщениями
при выборке, нужно изъять число сообщений, принадлежащих каждой теме,

SELECT sections.section_id, sections.name, MAX( messages.date ) AS message_date , COUNT( messages.id ) AS messages_count
FROM sections, messages
WHERE messages.section_id = sections.section_id
GROUP BY sections.section_id
ORDER BY messages.date DESC

что обеспечивается "WHERE messages.section_id = sections.section_id", но может быть вариант, когда в теме сообщений ещё нет и эти темы запросом не выбираются.
при попытке вставить инструкцию IF(COUNT(messages.id)>0, messages.section_id = sections.section_id, sections.section_id)
выдаётся ошибка
#1111 - Invalid use of group function
По идее речь о COUNT(messages.id)>0.

как нужно правильно написать этот запрос?

SELECT sections.section_id, sections.name, MAX( messages.date ) AS message_date , COUNT( messages.id ) AS messages_count
FROM sections, messages
WHERE IF(COUNT(messages.id)>0, messages.section_id = sections.section_id, sections.section_id)
GROUP BY sections.section_id
ORDER BY messages.date DESC

Добавлено: 10 дек 2005, 14:27
Oscar
Посмотри тут:
forum/viewtopic.php?t=4665
или тут:
forum/viewtopic.php?t=4671