简单查询
1 | session.query(User).all() |
带条件查询
1 | session.query(User).filter_by(name='user1').all() |
多条件查询
1 | session.query(User).filter(and_(User.name.like("user%"), User.fullname.like("first%"))).all() |
sql过滤
1 | session.query(User).filter("id>:id").params(id=1).all() |
关联查询
1 | session.query(User, Address).filter(User.id == Address.user_id).all() |
聚合查询
1 | session.query(User.name, func.count('*').label('user_count')).group_by(User.name).all() |
子查询
1 | subq = session.query(Address.user_id, func.count('*').label("address_count")).group_by(Address.user_id).subquery() |
exists
1 | session.query(User).filter(exists().where(Address.user_id == User.id)).all() |
记录总数查询
1 | session.query(func.count(User.id)).scalar() |
distinct用法
1 | session.query(distinct(User.name)).all() |