gpt4 book ai didi

mysql - SQLAlchemy 核心中是否有 `USING` 子句?

转载 作者:可可西里 更新时间:2023-11-01 08:44:36 26 4
gpt4 key购买 nike

我在 MySQL 数据库上使用 SQLAlchemy。有没有办法可以使用 MySQL 的 USING 子句来连接表?

例如

SELECT *
FROM
a JOIN b
USING(some_id, other_id);

最佳答案

简答

没有。

更长的答案

你可以写一个 compiler extension呈现声明,但我认为不值得付出努力。解释如下。

在 MySQL 中,您不必使用 USING 来连接表。它被认为是更通用的 ON 结构的语法糖。

SQLAlchemy 不包括处理连接列具有相同名称的特殊情况(使用 USING 的主要用例)。它始终使用最通用的方法 (ON)。

因为 SQLAlchemy 将为您呈现所有 ON 语句,并且在大多数情况下将从您的 Table 定义中推断出连接关系,从而避免指定连接的需要条件根本,这不一定是更多的工作。

例子

t1 = Table('a', metadata,
Column('id', Integer))
t2 = Table('b', metadata,
Column('id', Integer),
Column('fk', Integer, ForeignKey('a.id')))

sel = select([
t1.c.id,
t2.c.id,
]).select_from(
t1.join(t2) # please note, no ON or USING
)
print sel

将导致

SELECT a.id, b.id 
FROM a JOIN b ON a.id = b.fk

关于mysql - SQLAlchemy 核心中是否有 `USING` 子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32198312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com