在此表架构中:
class Location(db.Model):
id = db.Column(db.String(255), primary_key=True)
parent_id = db.Column(db.String(255), db.ForeignKey('location.id'), nullable=True)
type = db.Column(db.String(255))
name = db.Column(db.String(255))
options = db.Column(db.Text, nullable=True)
我有一个父母,假设这张桌子:
> select * from location;
+--------------------------------------+--------------------------------------+---------+-----------+---------+
| id | parent_id | type | name | options |
+--------------------------------------+--------------------------------------+---------+-----------+---------+
| 8821da60-e7d2-11e1-951e-ae16bc2b7368 | 88227a60-e7d2-11e1-951e-ae16bc2b7368 | city | sengkang | NULL |
| 88227a60-e7d2-11e1-951e-ae16bc2b7368 | NULL | country | singapore | NULL |
+--------------------------------------+--------------------------------------+---------+-----------+---------+
父对象是名为singapore的国家对象。可以有更多的嵌套对象,即sengkang的孩子,就像sengkang是新加坡的孩子一样。
因此,单个层次结构链可能看起来像 a -> b -> sengkang -> singapore
其中 -> 手段是
如何获取所有父对象为新加坡的 Location 对象,包括父对象(新加坡)?(请在 SQLAlchemy 中)。谢谢!