Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > mysql запрос помогите правильно составить


Автор: Sanchezzz 26.7.2012, 10:54
Добрый день помогите правильно отсортировать данные.

В общим суть такова нужно отсортировать категории порядок вывода помери добавления новости + показать количество новостей.

Вот что у меня получилось но работает не правильно категории не сортируются 
Код


SELECT tvp.name, tvp.link, tvp.logo, n.news_time, c.catid, count(n.id) as ncount
FROM gst_shortnews n
INNER JOIN gst_shortnews_video v ON v.news_id = n.id
INNER JOIN gst_cat2news c ON c.catid
IN ( 38, 40, 41, 46, 45, 36, 47, 43, 48, 49 ) 
AND c.newsid = n.id
LEFT JOIN gst_tvprogram tvp ON tvp.idcat = c.catid
WHERE n.news_time < NOW( ) 
GROUP BY c.catid
ORDER BY n.news_time DESC LIMIT 8



таблица gst_tvprogram  содержит название и ссылку на раздел 
INNER JOIN gst_shortnews_video v ON v.news_id = n.id 
для того чтобы выбрать новости содержавшие видео
INNER JOIN gst_cat2news c ON c.catid 
сами категории 

сколько учу mysql толком не могу разобраться внем...

Автор: Wolf1994 26.7.2012, 14:36
По-моему, такой подход - такая же крайность, как и полный отказ от реляционных СУБД. Попробуйте разложить всё на простые запросы, оптимизировать каждый из них, добавить индексы, при возможности закэшировать часто-используемые и перенести в MEMORY с небольшими по объёму данными... а после сравнить по производительности с первоначальным smile 

Автор: Zloxa 26.7.2012, 15:43
Цитата(Sanchezzz @  26.7.2012,  11:54 Найти цитируемый пост)
n.news_time

У вас есть категория которая содержит несколько новостей. Дату какой новости из них вы желаете отобразить? MySQL отобразит любую из нескольких. 
То же самое и при сортировке. Сортировка производится, но производится по любой дате из множества возможных. По какой - хз. В разные времена может быть по разному.

order by max(n.news_time) desc ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)