Shr*_*dha 3 python sqlalchemy flask-sqlalchemy
我有 2 个表(比如Student
和College
)和第三个表(StudentCollege
),其中有student_id
和college_id
外键。
我想给出以下查询的输出:
list = (
db.session.query(StudentCollegeModel.College_id)
.filter(StudentCollegeModel.student_id== student_id)
.all()
)
Run Code Online (Sandbox Code Playgroud)
以下查询:
(
db.session.query(CollegeModel)
.filter(CollegeModel.College_id.in_(list))
.all()
)
Run Code Online (Sandbox Code Playgroud)
但它给出了编程错误。
您无需执行第一个查询即可将其用作第二个查询中的子查询。这使您不必College_id
在进行in_()
查询之前构建所有's 的内存列表,并且意味着您只需往返数据库一次。
subquery = (
db.session.query(StudentCollegeModel.College_id)
.filter(StudentCollegeModel.student_id== student_id)
)
result = (
db.session.query(CollegeModel)
.filter(CollegeModel.College_id.in_(subquery))
.all()
)
Run Code Online (Sandbox Code Playgroud)