mySQL-选择受限后的UNION

时间:2018-11-03 07:03:50

标签: mysql join select union

我正在用PHP编写一个非常基本的论坛脚本作为学习练习。假设我有一个看起来像这样的表(为清楚起见,减少到3列):

ID    PARENT    TITLE
1     null      Welcome to Post-Tools User Forum
2     1         Thank you!
3     2         Amen
4     null      EDL Loading Problems
5     4         EDL Loading Problems
6     4         EDL Loading Problems
7     null      Christmas Work Schedule
8     7         Christmas Work Schedule
9     1         Another Thank You!
10    3         I agree!
11    10        Idiots
12    1         Excellent tool.
13    3         Yup
14    2         I second that!
15    4         EDL Loading Problems

说我要选择最后5条消息。但是,为了对每个新消息都有一个完整线程,我还需要遍历整个树,以查找这5条消息中的每条消息的最高父级,然后向下爬回让那些父母的所有孩子

我可以选择最后5条消息,如下所示:

SELECT * FROM postsTable
ORDER BY id DESC
LIMIT 5

哪个返回:

ID    PARENT    TITLE
15    4         EDL Loading Problems
14    2         I second that!
13    3         Yup
12    1         Excellent tool.
11    10        Idiots

然后我想我可以通过第一个查询返回的所有父级的第二次选择(即消息4、2、3、1和10)来加入该结果。

但是,一旦我使用ORDER BY和/或LIMIT命令,就无法进行联接或联合工作。

此外,一旦有了父母,我仍然需要做进一步的查询,以确保找到最高级的父母以及这些父母中的任何其他子孙。我认为学习mySQL将会是一个中等难度的测试,变得比预期的要复杂得多。

有人对如何将初始查询限制为最后的“ X”消息,然后返回这些消息的所有父母,兄弟姐妹和堂兄弟有任何建议吗?

我认为这与之前回答的层次递归查询问题不同,因为我们不知道树在哪里,因此我们必须同时向上和向下浏览树才能完成查询。此外,我们可能要考虑多个父母/兄弟姐妹。

0 个答案:

没有答案