我想使用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
答案 0 :(得分:1)
答案是“不”。
原因是SQLSoup没有被维护并且已经过时(我可以这么说,因为我是SQLSoup曾经拥有的唯一维护者)。使用automap,我将其作为SQLSoup的现代替代品。