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

如何在SQLAlchemy中关联类型格式不同但数据同源的两张表?

不同格式类型字段的表关联实现

针对你这种一个是int类型ID、另一个是带固定前缀的字符串ID的关联场景,只需对字符串字段做格式清洗+类型转换,再和int字段匹配即可,用SQLAlchemy的内置函数就能实现:

方法1:替换前缀后转int

如果columnB的前缀固定为'Agent:',可以用replace函数去掉前缀,再通过cast转成int类型,关联写法如下:

select(...)
.select_from(
    table1.join(
        table2,
        table1.c.columnA == func.cast(func.replace(table2.c.columnB, 'Agent:', ''), Integer)
    )
)

方法2:截取数字部分后转int

如果前缀长度固定('Agent:'是6个字符),也可以直接从第7位开始截取字符串,再转int:

select(...)
.select_from(
    table1.join(
        table2,
        table1.c.columnA == func.cast(func.substr(table2.c.columnB, 7), Integer)
    )
)

两种方法都能让原本格式不匹配的字段满足关联条件,根据你的数据库类型和实际场景选择即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:50:24