|
|
|
| Есть 3 таблицы
forums - список форумов
themes - список тем принадлежащих форумам
messages - сообщения, принадлежащие определенной теме
1. Каким образом (один запрос) можно посчитать количество ответов(messages) в данном форуме(для каждого форума из forums)?
2. Вывести последнее сообщение в форуме?
Главное условие, не вводить связи forums-messages типа
id
name
id_forum
id_theme
|
ЗЫ: не люблю доработки, но ... изменить структура таблиц нельзя так как записей форума уже очень много
ЗЫ2: Trianon, Cheops, заранее благодарен | |
|
|
|
|
|
|
|
для: mihdan
(30.07.2008 в 15:05)
| | Так ничего вводить и не требуется.
SELECT f.*, cnt
FROM forums AS f
LEFT JOIN (
SELECT t.id_forum as fid, COUNT(m.id_theme) AS cnt
LEFT JOIN messages AS m ON t.id = m.id_theme
GROUP BY fid ) AS r
ON f.id = r.fid
ORDER BY f.name
|
| |
|
|
|
|
|
|
|
для: Trianon
(30.07.2008 в 15:28)
| | Trianon, в очередной раз убедился что "вы гений SQL" (по словам Cheops'a). Огромное человеческое спасибо. | |
|
|
|