Общие > Базы данных

Не тот результат какой хочу

(1/5) > >>

Rodent:
У меня вот такой запрос

SELECT t . * , max( p.date ) AS last, p.author, count( * )
FROM we_topics t
INNER JOIN we_posts p ON t.tid = p.topic_id
WHERE t.forum_id = \'2\'
GROUP BY p.topic_id
ORDER BY last DESC

как вы поняли я пытаюсь вытащить последний пост в данной теме и показать его.
проблема в том что время поста нужное, то есть самое последнее, но при этом автор выдается почему-то первого поста.
В чем моя ошибка?

commander:
Rodent
покажи структуру таблиц...

Меняздесьдавнонет:
commander
ты с этим вопросом напоминаешь старого доктора из фильма "Не горюй". У того при любой болезни надо сдавать мочу. Ушибы, переломы - не важно. Сдавай.

И здесь тоже. Ну прочто никак невозможно обойтись без структуры, чтобы сообразить - при группировке кроме агрегатного поля остальные берутся от балды.

commander:
RomikChef

--- Цитировать ---
ты с этим вопросом напоминаешь старого доктора из фильма "Не горюй". У того при любой болезни надо сдавать мочу. Ушибы, переломы - не важно. Сдавай.

--- Конец цитаты ---

:) шутки понял... :)

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

Rodent:
Извиняюсь, за столько скорый вопрос без уточнения данных.
Вот структура таблиц

--
-- Структура таблицы `we_topics`
--

CREATE TABLE `we_topics` (
  `forum_id` smallint(5) default NULL,
  `tid` int(10) NOT NULL auto_increment,
  `title` varchar(100) default NULL,
  `descr` varchar(100) default NULL,
  `state` tinyint(1) NOT NULL default \'0\',
  PRIMARY KEY  (`tid`),
  UNIQUE KEY `id_topic` (`tid`)
) TYPE=MyISAM AUTO_INCREMENT=92 ;

--
-- Структура таблицы `we_posts`
--

CREATE TABLE `we_posts` (
  `forum_id` smallint(5) NOT NULL default \'0\',
  `topic_id` int(10) NOT NULL default \'0\',
  `pid` int(10) NOT NULL auto_increment,
  `text` text,
  `author` varchar(30) default NULL,
  `date` varchar(12) default NULL,
  `ip` varchar(15) default NULL,
  `edit_name` varchar(30) default NULL,
  `edit_date` varchar(12) default NULL,
  PRIMARY KEY  (`pid`),
  UNIQUE KEY `id_post` (`pid`)
) TYPE=MyISAM AUTO_INCREMENT=221 ;

Что я пытаюсь сделать...
Это выдащить последний пост для каджого топика.
Что получается...
группируется все по темам, дата полседнего поста, при этом автор первого поста.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии