我的网站有一个消息功能,一个用户可以向另一个用户发送消息。消息支持线程 - 父消息可能有任意数量的子消息,但只有一层深。
消息表如下所示:
Messages
- Id (PK, Auto-increment int)
- UserId (FK, Users.Id)
- FromUserId (FK, Users.Id)
- ParentMessageId (FK to Messages.Id)
- MessageText (varchar 200)
我想在每个“父”消息的页面上显示消息,然后是子消息的折叠视图。
我可以使用 GROUP BY 子句或类似结构在一个查询中检索父消息和子消息吗?现在我只检索父消息,然后遍历它们并对每个消息执行另一个查询以获取所有相关的子消息。
我想收到这样的消息:
Parent1
Child1
Child2
Child3
Parent2
Child1
Parent3
Child1
Child2