|
|
|
| Пишу блог. В админке есть пункт "Комментарии". Хотелось бы вывести туда что-то типа:
Название статьи, количество комментов (ссылка, с id статьи)
Причем, вывести это нужно (внимание!) в порядке убывания даты добавления комментария!
Никак не могу составить запрос...
Структура БД:
states
========
id
header
date
|
comments
========
id
comment
datetime
|
Помогите инвалиду | |
|
|
|
|
|
|
|
для: SHAman
(26.08.2007 в 16:12)
| | Насколько я вас понял ("ссылка, с id статьи" - я понимаю так: id статьи соответствует id комментария ), ваш запрос будет примерно таким:
SELECT st.header as 'заголовок',count(*) as 'количество'
FROM states st, comments com
WHERE st.id = com.id
GROUP BY com.id
ORDER BY MAX(com.datetimer) DESC
|
это с учетом того, что заголовок поля datetime таблицы comments будет переименован в datetimer (да и в таблице states не помешало бы поменять заголовок поля date на что-либо другое). | |
|
|
|
|
|
|
|
для: AlexelA
(26.08.2007 в 18:49)
| | Спасибо. Я ошибся. Конечно, тут не 1:1 соотношение. У одной статьи можеть быть несколько комментариев. То есть, я не дописал в comments поля id_state. То есть, нужно выбрать все статьи, в которых есть комментарии, а так же, количество комментариев в них и отсортировать по дате последнего комментария, во как!
Кстати, а зачем переименовывать date в datetimer? | |
|
|
|
|
|
|
|
для: SHAman
(27.08.2007 в 12:15)
| | Ранее написаный запрос должен полностью соответствовать вашим требованиям.
Я рекомендовал вам переименовать datetime в daetimer, а date во что-либо другое.
Причина: данные названия полей (datetime, date) совпадают с зарезервированными словами MySQL, что не есть хорошо (могут возникнуть проблемы). Но это была только рекомендация. | |
|
|
|
|
|
|
|
для: AlexelA
(27.08.2007 в 18:22)
| | А я просто заключаю все имена таблиц-полей в `` ;)
Спасибо, запрос попробую. | |
|
|
|