У меня довольно простая система форумов.Три основные таблицы, Тема, Комментарий и Пользователь, имеют все обычные поля, которые вы себе представляете, такие как автоинкрементные первичные ключи и внешние ключи друг к другу, поэтому я не думаю, что мне нужно подробно разбирать все это
То, что я пытаюсь сделать, - это получить список самых последних опубликованных тем.Представление списка должно показывать заголовок темы, тело исходного комментария / сообщения и имя автора, но список должен быть упорядочен по темам, которые были недавно опубликованы в первую очередь.
Я неочень хорош в MySQL за пределами самых простых запросов.Очевидно, я мог бы разбить его на несколько запросов, но я хочу, чтобы он выполнялся одним запросом на производительность.
Вот то, что я придумал первым, но он упорядочивает темы в соответствии со временем первого сообщения.
SELECT topic.id as topic_id, topic.title as topic_title, topic.datePosted as datePosted, topic.views as views, topic.numComments as numComments,
comment.ID as commentID, comment.body as body,
user.ID as userID, user.firstName, user.lastName, user.title as user_title, user.city, user.state, user.thumbnail
FROM comment INNER JOIN topic ON comment.topicID = topic.id
INNER JOIN user ON comment.userID = user.id
WHERE comment.id
IN (
SELECT min( comment.id )
FROM COMMENT INNER JOIN topic ON comment.topicID = topic.id
GROUP BY topic.id
)
ORDER BY commentID desc';