gpt4 book ai didi

python - 将查询输出作为输入传递给 SQLAlchemy 中另一个查询的 in 子句

转载 作者:太空宇宙 更新时间:2023-11-04 11:13:18 26 4
gpt4 key购买 nike

我有 2 个表(比如 StudentCollege)和第三个表(StudentCollege),其中有 student_idcollege_id 外键。

我想给出以下查询的输出:

list = (
db.session.query(StudentCollegeModel.College_id)
.filter(StudentCollegeModel.student_id== student_id)
.all()
)

下面的查询:

(
db.session.query(CollegeModel)
.filter(CollegeModel.College_id.in_(list))
.all()
)

但是它给出了编程错误。

最佳答案

您无需执行第一个查询即可在第二个查询中将其用作子查询。这使您不必在进行 in_() 查询之前构建所有 College_id 的内存列表,并且意味着您只需往返一次数据库。

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()
)

关于python - 将查询输出作为输入传递给 SQLAlchemy 中另一个查询的 in 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57669145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com