Есть два класса:
from sqlalchemy.orm import subqueryload,load_only
tasks_topics = db.Table(‘tasks_topics’,
db.Column(‘task_id’, db.Integer, db.ForeignKey(‘tasks.id’)),
db.Column(‘topics_id’, db.Integer, db.ForeignKey(‘topics.id’))
)



class Tasks(db.Model):
tablename = ‘tasks’
searchable = [‘task’, ‘id’] # these fields will be indexed by whoosh

id = db.Column(db.Integer, primary_key=True, autoincrement=True)
url = db.Column(db.String(120), comment=“ЧПУ задачи в адресе (транслитом)”)
task = db.Column(db.Text, comment=‘Условие задачи’)
answer = db.Column(db.Text, comment=‘Ответ’)
status = db.Column(db.Boolean, default=0, comment=‘Статус: опубликована/неактивна (по умолчанию нет)’)
created_t = db.Column(db.DateTime, comment=‘Дата и время создания’)
level = db.Column(db.SmallInteger, default=1, comment=‘Уровень сложности: 1,2 … (по умолчанию 1 уровень)’)

# связи
topics = db.relationship(‘Topics’,
secondary=tasks_topics,
back_populates=“tasks”)



class Topics(db.Model):
tablename = ‘topics’
searchable = [‘name’]

id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(140), comment=“Уникальное название темы(подтемы)”)
parent = db.Column(db.Integer, default=0, comment=“ID родительской темы(если есть)”)

# связи
tasks = db.relationship(‘Tasks’,
secondary=tasks_topics,
back_populates=“topics”)



Когда я вызываю задачи
all_tasks =Tasks.query.options(subqueryload(Tasks.topics)).filter(Tasks.id.in_([6,14])).all()
ТО, что я хочу получить в sql запросе
WITH RECURSIVE topic_parent(id, path) AS (
SELECT
id, ARRAY[id]
FROM topics
WHERE parent = 0
UNION
SELECT
t.id, path || t.id
FROM
topics t
INNER JOIN topic_parent rt ON rt.id = t.parent
),
cte2 as (
select *, unnest(path) AS linked_id
from topic_parent
)
select task_id, max(task) as task_name, max(name) as topic_name, linked_id as topic_id
from cte2 c
inner join tasks_topics t on c.id = t.topics_id
inner join tasks t2 on t2.id = t.task_id
inner join topics t3 on t3.id = c.linked_id
group by task_id, linked_id
order by task_id asc, linked_id desc

Как мне надо исправить свой код? Код нужно написать без использования raw sql