繁体   English   中英

在 sqlalchemy 核心中加入具有相同列名的多个表 - 如何?

[英]Join multiple tables with identical column names in sqlalchemy core - how?

我想加入三个表,使用 sqlalchemy 核心(v1.4,但使用 2.0 语法)。 使用最简单的格式

jo=s_table.join(l_table).join(f_table)
res=connection.execute(select(jo))
x=res.fetchone()

我在 x 中得到原始名称的列,但如果结果包含相同的名称,第一个将获得原始名称,第二个将在列名后附加“_1”,第三个“_2”等。我怎么能指定这些属性的命名规则? 在 sqlalchemy 的文档中,我找到了 alias() 方法,但据我所知,它已被弃用并将在 v2.0 中删除。

现在我发现了一些东西,但我不确定它是否正确:

from sqlaclhemy import alias, LABEL_STYLE_TABLENAME_PLUS_COL
...
alias1 = s_table.alias('s')
alias2 = l_table.alias('l')
alias3 = f_table.alias('f')

jo = alias1.join(alias2).join(alias3)
res = connection.execute(select(jo).set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL)
x = res.fetchone()

此时我可以访问列作为 s_ 、l_ 、f_*。 (不需要使用完整的表名,这是默认的)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM