gpt4 book ai didi

MySQL 关系查询——JOIN 是答案吗?

转载 作者:行者123 更新时间:2023-11-29 10:10:24 26 4
gpt4 key购买 nike

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

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 有 2 个子级:4 和 12。等等。

有了这些信息,我正在尝试找到最好的方法来确定我的帖子列表的子集的子项(例如消息 5 到 10)?某种类型的 JOIN 是否允许单个查询获取父项和任何相应的子项?或者我是否可以更好地对每条父消息进行单独查询以确定其子消息?

我正在尝试了解 JOIN,但它确实令人困惑。抱歉,如果这是基本内容,但提前致谢。

最佳答案

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

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

关于MySQL 关系查询——JOIN 是答案吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51069374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com