|
|
|
| Есть 2 таблицы. 1я в которой содержатся статьи (записи) и 2я в которой есть комменты к этим записям. Подскажите пжл, как можно вывести, например, 5 самых комментируемых записей? | |
|
|
|
|
|
|
|
для: (Sandr)
(22.06.2011 в 22:05)
| | В таблицу со статьями ввести счётчик комментариев и обновлять по мере надобности. Затем произвести сортировку по этому полю не составит труда. | |
|
|
|
|
|
|
|
для: Саня
(22.06.2011 в 22:33)
| | Тоже сначала хотел так сделать, но для этого нужно ещё одно поле, и каждый раз, при изменении количества комментов нужно изменять и значение в той таблице.. Я знаю, что есть способ по проще, но вот какой..)) | |
|
|
|
|
|
|
|
для: (Sandr)
(22.06.2011 в 23:07)
| | Способ есть и вряд ли он проще в плане нагрузки на базу данных. | |
|
|
|
|
|
|
|
для: (Sandr)
(22.06.2011 в 22:05)
| | Это Вам в тему про SQL надо. Какая структура таблиц? Вообще, думаю нужно сгруппировать комментарии по идентификатору статьи, посчитать их количество и отсортировать. | |
|
|
|
|
|
|
|
для: MHz
(22.06.2011 в 22:48)
| | CREATE TABLE `cat` (
`id` int(5) NOT NULL auto_increment,
`name` text NOT NULL,
`about` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE `art` (
`id` int(15) NOT NULL auto_increment,
`id_cat` int(10) NOT NULL,
`name` varchar(50) NOT NULL,
`text` text NOT NULL,
`date` int(25) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Можете подсказать как? Мне говорили, про то, что в запросе должно быть что-то в роде .... GROUP BY .... Но как именно не сказали(( Подскажите пжл или дать ссылки на статьи в которых про это говорится подробно. | |
|
|
|
|
|
|
|
для: (Sandr)
(22.06.2011 в 23:13)
| | Боюсь что-то я напутал :)
SELECT cat.name, COUNT (art.id_cat) AS sum FROM art, cat WHERE cat.id=art.id_cat GROUP BY (cat.id) ORDER BY sum DESC
|
| |
|
|
|
|
|
|
|
для: MHz
(23.06.2011 в 00:39)
| | Спасибо.
Не могли бы вы ещё объяснить, что значит символ "." (точка) в этом запросе? | |
|
|
|
|
|
|
|
для: (Sandr)
(23.06.2011 в 12:24)
| | Так как это многотабличный запрос, т.е. обращен сразу к двум таблицам, нужн способ различать поля из одной и другой таблиц. Поэтому используются так называемые расширенные имена, с указанием имени таблицы и через точку имени поля данной таблицы. | |
|
|
|
|
|
|
|
для: (Sandr)
(23.06.2011 в 12:24)
| | cat - таблица, name - поле этой таблицы | |
|
|
|