S
Size: a a a
S
v
S
v
v
I
I
v
v
I
class Parent(Base):
# ...
def all_children(self):
return Child.query.filter((Child.parent_id == self.id) | (Child.parent_id == None)).all()
v
v
class Parent(Base):
# ...
def all_children(self):
return Child.query.filter((Child.parent_id == self.id) | (Child.parent_id == None)).all()
I
v
I
v
I
# version-1: use JOIN
q = session.query(Parent).join(Child, Parent.child).filter(Child.date != None)
# or:
# version-2: use EXISTS
q = session.query(Parent).filter(Parent.child.has(Child.date != None))
v
v
v