You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQLAlchemy 1.3.19中关联两个查询并指定字段查询

解决方案

在SQLAlchemy 1.3.19中,你可以将已有的两个查询转换为子查询,再通过id字段关联,最终只选取需要的name和salary字段。具体实现如下:

# 将两个查询转为子查询
subq1 = query1.subquery()
subq2 = query2.subquery()

# 关联子查询并选择目标字段
result_query = session.query(subq1.c.name, subq2.c.salary)\
    .join(subq2, subq1.c.id == subq2.c.id)

# 执行查询获取结果
results = result_query.all()

说明

  • subquery()方法会将原查询转换为可被嵌套使用的子查询对象,通过.c属性可以访问子查询中的字段(比如subq1.c.name对应原Table1.name)。
  • 使用join()基于id字段关联两个子查询,确保只匹配id相同的记录。
  • 最终的result_query只包含你需要的两个字段,执行all()即可获取所有匹配的结果列表,每个元素是包含name和salary的元组。

如果需要处理左连接(即保留Table1中所有记录,即使Table2中没有对应id的记录),可以改用outerjoin():

result_query = session.query(subq1.c.name, subq2.c.salary)\
    .outerjoin(subq2, subq1.c.id == subq2.c.id)

内容的提问来源于stack exchange,提问作者owgitt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 23:58:16