mysql关系查询——join是答案吗?

ukqbszuj  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(307)

我正在使用mysql为我的站点编写一个基本的论坛系统。我需要一种方法不仅跟踪帖子,而且跟踪帖子的回复。因为每个帖子只能有一个家长,但最终可以有多个孩子,我想我需要两个表。第一个表至少包含每个帖子的标题、正文和父级。第二个表仅包含对父帖子及其相应子帖子的引用,如下所示:

Posts Table

ID |  PARENT  |  TITLE  |  POST
1  |          |  Msg 1  |  Body 1
2  |          |  Msg 2  |  Body 2
3  |          |  Msg 3  |  Body 3
4  |  2       |  Msg 4  |  Body 4
5  |  1       |  Msg 5  |  Body 5
6  |          |  Msg 6  |  Body 6
7  |          |  Msg 7  |  Body 7
8  |  5       |  Msg 8  |  Body 8
9  |          |  Msg 9  |  Body 9
10 |  1       |  Msg 10 |  Body 10
11 |  1       |  Msg 11 |  Body 11
12 |  2       |  Msg 12 |  Body 12

Children Table

ID |  PARENT  |  CHILDREN   
1  |  2       |  4           
2  |  1       |  5 
3  |  5       |  8 
4  |  1       |  10 
5  |  1       |  11
6  |  2       |  12

在本例中,消息1有3个子级:5、10和11。消息2有两个子项:4和12。等。
有了这些信息,我试图找到最好的方法来确定我的帖子列表子集的子项(比如消息5到10)?某种连接是否允许单个查询获取父级和任何相应的子级?或者我最好对每个父消息分别进行查询以确定其子消息?
我正试着弄清楚我的想法,这让我很困惑。抱歉,如果这是基本的东西,但提前谢谢。

bvjxkvbb

bvjxkvbb1#

Select parent, group_concat(title) from posts where 
parent!='' group by parent;

从这里开始,看看会发生什么。

相关问题