есть две таблицы вида: [sql]-- -- Структура таблицы `posts` -- CREATE TABLE `posts` ( `post_id` int(11) NOT NULL auto_increment, `theme_id` int(11) NOT NULL default '0', `author` tinytext NOT NULL, `body` text NOT NULL, `attach` tinytext NOT NULL, `time` int(11) NOT NULL default '0', PRIMARY KEY (`post_id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=61 ; -- -------------------------------------------------------- -- -- Структура таблицы `themes` -- CREATE TABLE `themes` ( `theme_id` int(11) NOT NULL auto_increment, `forum_id` int(11) NOT NULL default '0', `name` tinytext NOT NULL, `author` tinytext NOT NULL, `time` int(11) NOT NULL default '0', `posts` int(11) NOT NULL default '0', `views` int(11) NOT NULL default '0', `last_post` tinytext NOT NULL, PRIMARY KEY (`theme_id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=12 ;[/sql] это таблицы форума - темы и посты. Кароче надо связать две таблицы posts и themes (по полю theme_id), затем отсортировать результат вывода по полю time таблицы posts и чтобы в результате небыло повторяющихся строк с theme_id (т.е. DISTINCT theme_id) В итоге на ум приходит запрос вида: [sql]SELECT DISTINCT themes.theme_id, themes.name, themes.author, themes.posts, themes.views, themes.last_post FROM themes, posts WHERE themes.theme_id = posts.theme_id ORDER BY posts.time LIMIT 7[/sql] Однако результат все равно неправильный, вывод несортируется по полю time таблицы posts. Как мне правильно построить запрос господа помогите?
да не в это дело, просто если поставить запрос так: [sql]SELECT * FROM themes, posts WHERE themes.theme_id = posts.theme_id ORDER BY posts.time DESC LIMIT 7[/sql] то все прекрасно работает - т.е. сортируется по полю time таблицы posts, но мне еще нужно делать DISTINCT по полю themes.theme_id - чтобы в результате небыло строк с одинаковыми значениями в поле theme_id таблицы themes и для этого я пишу запрос вида: [sql]SELECT DISTINCT themes.theme_id, themes.name, themes.author, themes.posts, themes.views, themes.last_post FROM themes, posts WHERE themes.theme_id = posts.theme_id ORDER BY posts.time LIMIT 7[/sql] При этом получая результат - но не отсортированный как мне надо
т.е. при [sql]DISTINCT themes.theme_id, themes.name, themes.author, themes.posts, themes.views, themes.last_post[/sql] загадочно перестает работать часть запроса: [sql]ORDER BY posts.time[/sql]
enshtein Если тебе надо вывести темы в порядке их обновления, то лучше в themes заведи поле theme_update_time и в него при постинге нового сообщения пиши NOW() и по нему сортируй.