所以我正在尝试建立一个简单的论坛。它将是按主题(如果没有回复)或最新回复的日期降序排列的主题列表。这是数据库结构:
论坛主题
id, name, email, body, date
论坛回复
id, email, body, date, topic_id
论坛本身将包含一个带有以下标题的 HTML 表格:
Topic, Last Modified, # Replies
产生这样一个结构的一个或多个查询是什么样的?我以为这会涉及交叉连接,但不确定...提前致谢。
最佳答案
有点像这样:
select * from forum_topic
inner join forum_reply on forum_topic.id=topc_id
但是,不要使用select *
这是不好的做法:)
而且我不喜欢你避免规范化的方式!意思是我宁愿:
用户
- 用户名
- 姓名
- 电子邮件
线程
- 线程ID
- 主题
- 已回答
- AskedByUserID
- 日期
回复
- 回复ID
- 线程ID
- 用户名
- 回答
- 日期
然后像这样选择一个线程:
select ThreadID, Subject, Answered, AksedByUserID, Date from Threads
然后像这样选择所有回复
select Answer, Date, Name, Email from Threads
inner join Replies on Threads,ThreaID=Replies.ThreadID
inner join Users on AskedByUserID=UserID
where Threads.ThreadID=xxx
现在这只是我的脑海里写的,但你可能还需要添加一些分组依据。
关于php - MySQL简单论坛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/409321/