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

如何用SQLAlchemy Core获取含关联外键表数据的行值

用SQLAlchemy Core实现关联查询

要同时获取two_table指定行和其关联的one_table数据,直接用JOIN关联两张表即可,具体实现如下:

完整查询代码

# 构建关联查询语句
query = select(two_table, one_table).join(
    one_table, two_table.c.one == one_table.c.id
).where(two_table.c.id == some_two_table_id)

# 执行查询并获取结果
result = db.session.execute(query).first()

关键部分说明

  • select(two_table, one_table):指定查询两张表的所有字段,若只需特定字段,也可单独列出,比如 select(two_table.c.id, one_table.c.name)
  • join():用于关联两张表,第一个参数是目标关联表,第二个参数是关联规则(这里用外键two_table.c.one匹配one_table.c.id)
  • 保留原有的where条件,用来过滤two_table的指定行
  • .first():因为查询的是指定ID的行,只会有一条匹配结果,用该方法直接获取单条数据

结果读取

返回的result是包含两张表字段的行对象,有两种访问数据的方式:

# 通过字段对象访问(推荐,避免字段名混淆)
two_name = result[two_table.c.name]
one_name = result[one_table.c.name]

# 或者按select中表的顺序用索引访问
two_data = result[0]
one_data = result[1]
print(two_data.id, one_data.name)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 13:45:31