我们正在测试实现SQLAlchemy来处理数据库工作的可能性。在某些情况下,我需要将数据库加入到自身的克隆中(当然可能有不同的数据)。
我需要复制的SQL示例如下:
SELECT lt.name, lt.date, lt.type
FROM dbA.dbo.TableName as lt
LEFT JOIN dbB.dbo.TableName as rt
ON lt.name = rt.name
AND lt.date = rt.date
WHERE rt.type is NULL
到目前为止,我已尝试使用join
对象,但我无法将其吐出整个联接。我也根据这里的教程尝试了各种.join()
方法:http://docs.sqlalchemy.org/en/rel_1_0/orm/tutorial.html我不断得到一个AttributeError:" mapper"或不是我正在寻找的东西。
我遇到的问题是我不仅需要加入多个字段,而且还不能在对象或表格中建立任何外键关系。
答案 0 :(得分:1)
感谢Kay,我想我已经找到了解决方案。
看起来它可以通过以下方式解决:
session.query(dbA_TableName).outerjoin(
dbB_TableName,
and_(dbA_TableName.name == dbB_TableName.name",
dbA_TableName.date == dbB_TableName.date")
).filter("dbB_TableName.type is NULL")