SQLSoup多个连接

时间:2014-04-07 16:50:22

标签: python mysql sqlalchemy sqlsoup

我想使用SQLSoup来查询MySQL数据库。

我想发出的查询包含多个连接。不幸的是,tutorial示例涉及具有完全不同列名的表(表中没有重复的列名)。

我的情况是,我的所有表都有一个名为pkey的{​​{1}}列。

我执行以下操作:

id

结果是:

s = SQLSoup(DATABASE_URI)
s.join(s.logical_interface, s.with_labels(s.physical_interface), s.physical_interface.id == s.logical_interface.physical_interface_id).first()

因此我会做以下事情:     s.join(s.with_labels(s.logical_interface),s.with_labels(s.physical_interface),s.physical_interface.id == s.logical_interface.physical_interface_id).first()

导致(参见下面的完整查询):

InvalidRequestError: Implicitly combining column logical_interface.physical_interface_id with column foo.physical_interface_id under attribute 'physical_interface_id'.  Please configure one or more attributes for these same-named columns explicitly

似乎每个表使用相同的表别名OperationalError: (OperationalError) (1066, "Not unique table/alias: 'foo'") 'SELECT foo.logical_interface_id AS ... ,这显然会导致麻烦。

有正确的方法吗?


完整查询:

foo

1 个答案:

答案 0 :(得分:1)

答案是“不”。

原因是SQLSoup没有被维护并且已经过时(我可以这么说,因为我是SQLSoup曾经拥有的唯一维护者)。使用automap,我将其作为SQLSoup的现代替代品。