首页 > 解决方案 > 使烧瓶查询更高效

问题描述

我正在使用此查询来获取基于状态和学校类型的用户。就像如果我有 5 类学校和 5 类用户,我必须查询 25 次。有什么好的解决方案还是我做得对?

   all_users = (
            session.query(User)
            .join(School)
            .filter(
                School.type == 1,
                User.status == 2,
            )
            .all()
        )

标签: pythonsqlalchemy

解决方案


这是一个很常见的情况,答案很好理解:in_在过滤器上,如下所示:

all_users = (
        session.query(User)
        .join(School)
        .filter(
            School.type.in_(my_list_of_school_ids),
            User.status.in_(my_list_of_user_status),
        )
        .all()
    )

推荐阅读