я делаю какую-то работу для отдела, который имеет довольно базовую структуру таблицы установить на свои форумы в базе данных MySQL:MySQL Query: Получение Последнего сообщения в форуме
Каждое сообщение принадлежит к теме и каждому thread принадлежит к категории. Существует также таблица пользователей для информации об авторе.
TABLE category:
id (int)
name (varchar)
TABLE thread:
id (int)
category_id (int)
user_id ((int)
title (varchar)
last_post (int) -- logs a unix timestamp of the last posts insertion
TABLE post:
id (int)
user_id (int)
thread_id (int)
post (longtext)
timestamp (int)
TABLE users:
id (int)
username (varchar)
Я пытаюсь создать страницу, которая будет отображать все темы, пользователь разместил сообщение в (только один раз, так что если пользователь отправил ИНТ нити 3 раза она должна по-прежнему показывать только один раз в список) и последнее сообщение, добавленное к каждому из этих потоков.
Так что эти поля я пытаюсь SELECT:
Категория Имя
Id Категория
Заголовок темы
Thread ID
Сообщение идентификатор последнего добавленного сообщения в этой теме
сообщение текст последнего добавленного сообщения к этому потоку
Идентификатор пользователя автора самого последнего добавленного сообщения к этой теме
Имя пользователя пользователя, недавно добавленное к этому сообщению
Время, когда последнее сообщение было отправлено
Его можно заказать по последнему действию потока.
Возможно ли это в одном запросе? Очевидно, что упростить это было бы, чтобы запросить все потоки, которые пользователь разместил в сообщении, а затем отправить отдельный запрос для каждого из них, чтобы получить самую последнюю добавленную информацию о сообщении.
Спасибо!
Я не вижу никаких столбцов-кандидатов для связи категории -> thread -> post. Каковы ваши отношения с внешним ключом? –
О, человек. Сожалею. Я оставил это ... Тема category_id ссылается на таблицу категорий, а thread_id ссылается на таблицу потоков. Надеюсь, что поможет. Спасибо (я отредактировал сообщение выше). – SqlSoul