Python 如何在sqlalchemy中选择多列联接的特定列?
我们正在测试实现SQLAlchemy来处理数据库工作的可能性。在某些情况下,我需要将数据库连接到自身的克隆(当然,可能有不同的数据) 我需要复制的SQL示例如下:Python 如何在sqlalchemy中选择多列联接的特定列?,python,sqlalchemy,Python,Sqlalchemy,我们正在测试实现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
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。根据这里的教程,我还尝试了各种.join()
方法:我不断得到一个AttributeError:“mapper”或不是我想要的
我遇到的问题是,我不仅需要在多个字段上进行连接,而且不能在对象或表中构建任何外键关系。多亏了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")`