gpt4 book ai didi

mysql - 返回 child 的查询,以及带 child 的 parent

转载 作者:行者123 更新时间:2023-11-30 21:46:15 25 4
gpt4 key购买 nike

我有一个包含文章的表格。有些文章是父文章的一部分。

这是我的模型:

article_id | parent_article_id | title
--------------------------------------
61 | 0 | ...
62 | 61 | ...
43 | 61 | ...
48 | 61 | ...

示例 1:

如果我选择父文章(假设 article_id 61),我想返回 article_id 62、43 和 48。换句话说,找到所有子文章.

我能够创建一个成功的查询:

SELECT a.article_id, a.title
FROM article a
WHERE a.parent_article_id = 61

示例 2:

这是我卡住的地方:

我有点想反其道而行之。例如,如果我选择一个子文章(假设 article_id 43),我想返回 article_id 61、62、48。换句话说,如果我选择一个子文章article,然后返回父 article (61) 和所有子项 (62, 48)。我不需要返回 child article_id 43..

如何为这两个示例创建 1 个查询?

最佳答案

您可以这样做:

select a.article_id, a.title
from article a
where a.parent_article_id = (select a2.parent_article_id
from article a2
where a2.article_id = 43
) or
a.article_id = (select a2.parent_article_id
from article a2
where a2.article_id = 43
);

或者,如果您愿意:

select a.*
from article a join
article a43
on a43.article_id = 43 and
a43.parent_article_id in (a.parent_article_id, a.article_id);

如果索引正确,第一个版本的性能可能会更好。

关于mysql - 返回 child 的查询,以及带 child 的 parent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49338664/

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