Аз съм нов в SQLAlchemy, след като дойдох от Django ORM. Опитвам се да създам прост модел на вложен набор и бих искал да направя родителско търсене. Което бих направил така в Django ORM:
Page.objects.get(slug="currentlevel",parent__slug="secondlevel",parent__parent__slug="firstlevel")
Това би направило автоматично запитване към базата данни за всеки родителски елемент, връщайки съответния ред на страницата.
В SQLAlchemy най-доброто, което мога да измисля, е:
session.query(Page).join(Page.parent, aliased=True).filter_by(slug="child")
Така че мога да отправя заявка към непосредствения родителски елемент, но как мога да продължа нагоре по веригата с една заявка? Динамично, ако е възможно (произволен брой нива)
Моля, имайте предвид, че съм нов в SQLAlchemy и идвам от относително защитената Django ORM. Сигурен съм, че има информация в документите на SQLAchemy, но я прочетох и не мога да я намеря.
Благодаря за вашата помощ.
SELECT * FROM mytable a JOIN mytable b ON a.id=b.id WHERE a.id='boo'
) отнема 0,9 ms. Извличането на един ред от заявка с 2 самореферентни съединявания е около 1,2 ms. Така че е почти същото. Също така имайте предвид, че най-вероятно ще трябва да извлечете родителските страници така или иначе, дори само за да покажете техните заглавия в навигационните трохи или в менюто. - person Sergey   schedule 19.03.2014