欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SQLAlchemy之subquery的使用_高级查询之子查询

程序员文章站 2024-03-04 12:30:53
...

subquery的使用_高级查询之子查询

子查询即select语句中还有select
那么在sqlalchemy中,要实现一个子查询,需以下几个步骤:

  1. 将子查询按照传统的方式写好查询代码,然后在query对象后面执行subquery方法,将这个查询变成一个子查询。
  2. 在子查询中,将以后需要用到的字段通过label方法,取个别名。
  3. 在父查询中,如果想要使用子查询的字段,那么可以通过子查询的返回值上的c属性拿到(c=Column)

stmt = session.query(User.city.label('city'),\
	User.age.label('age'))\
	.filter(User.uname == '一哥').subquery()
    
result = session.query(User)\
	.filter(User.city == stmt.c.city, User.age == stmt.c.age).all()