我在努力收集一个MySQL表中的一个(用户)帖子,其中一些是另一个的后代。目标是检索(A)符合某些标准的“根”职位,加上(B)那些帖子的后代。我试图将结果别名为(A)并将其与(B)的依赖结果进行UNION,但MySQL抱怨数据库没有具有别名的表。
SELECT * from
(
SELECT * FROM post WHERE [criteria for "root" posts]
) AS roots
UNION
(
SELECT post.* FROM post LEFT JOIN postClosure on postClosure.descendant = post.id
WHERE postClosure.ancestor IN ( SELECT id from roots )
)
MYSQL说“表'[我的数据库名称].roots'不存在”
有没有一种方法可以绕过这个问题--不将子句“SELECT id from roots”重写为来自表“post”的显式SELECT语句--这将重复处理?
1条答案
按热度按时间pw9qyyiw1#
如果你只是想要“根”的直接后代,我们可以使用一个公共表表达式沿着union: