【发布时间】:2015-02-11 19:44:22
【问题描述】:
我有一张这样的桌子:
+---------+----------+
| post_id | reply_to |
+---------+----------+
| 1 | 0 |
| 2 | 1 |
| 3 | 2 |
| 4 | 2 |
| 5 | 3 |
| 6 | 5 |
| 7 | 1 |
| 8 | 7 |
| 9 | 8 |
| 10 | 7 |
+---------+----------+
reply_to 只是正在回复的帖子的 ID(即 post_id of 2 是对 post_id of 1 的回复)。
这是嵌套形式时的样子:
1
2
3
5
6
4
7
8
9
10
我怎样才能创建一个单个查询来执行以下操作:
-
查询 1: 获取所有回复
post_id = 1(2 and 7) 的帖子,并将结果数限制为 5 个 -
查询 2: 使用从 查询 1 检索到的值,获取子帖子(
3 and 4和8 and 10)并将结果数限制为 3 每个父帖子 -
查询 3:使用从 查询 2 检索到的值,获取子帖子(
5和9)并将结果数限制为 1 个父帖
所以最后,结果应该包括这些 post_ids:2, 3, 5, 4, 7, 8, 9, 10。
这是我创建的 SQL Fiddle:http://sqlfiddle.com/#!2/23edc/21
请帮忙!
【问题讨论】:
-
单个查询的用途是什么?似乎它只会增加不必要的复杂性。
-
看起来您可以使用单个 SP(存储过程)来解决您的需求。
-
您确定不喜欢stackoverflow.com/a/27454902/4350148 的答案吗?它完成了这项工作。再看一眼并发表评论。