【发布时间】:2019-01-29 10:28:28
【问题描述】:
我想将父行中的值放在子行中,问题是所有内容都有多个级别。我给你看会更容易。
我想要类似的东西:
id | question_id | text
74 | 47 | Test answer
75 | 47 | Another answer
76 | 47 | Sub answer
77 | 47 | Sub sub answer
我想获取每个答案(行)的所有第一级父母的列表。 id 77 的顶级父级是 75,而 75 的 question_id 为 47,这正是我所需要的。因为这样我就可以 count() 来自 question_id 47 的总答案。
我调查了一下,尝试了以下代码:
SELECT @pv:=id AS id, answered_at, parent
FROM qa_answers
JOIN (SELECT @pv:=75) AS tmp
WHERE parent = @pv
但这仅返回 id 75,我想向我展示所有内容。关于如何实现这一目标的任何想法?我不是 SQL 专家。
【问题讨论】:
-
在 MySQL 8+ 中使用递归 CTE。
-
任何链接可以帮助我理解它是什么?
标签: mysql sql recursive-query