我正在使用SQLAlchemy连接到MySQL数据库。是否有一种方法可以使用MySQL的
例如:
USING
子句来连接表格?例如:
SELECT *
FROM
a JOIN b
USING(some_id, other_id);
USING
子句来连接表格?SELECT *
FROM
a JOIN b
USING(some_id, other_id);
不需要。
你可以编写一个编译器扩展来渲染语句,但我认为这并不值得努力。下面是解释。
在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