如何在sqlalchemy中选择多列连接的特定列?
Posted
技术标签:
【中文标题】如何在sqlalchemy中选择多列连接的特定列?【英文标题】:How to select specific columns of multi-column join in sqlalchemy? 【发布时间】:2015-10-05 17:16:37 【问题描述】:我们正在测试实施 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" or not what I'm looking for。
我遇到的问题是,我不仅需要加入多个字段,而且不能将任何外键关系内置到对象或表中。
【问题讨论】:
docs.sqlalchemy.org/en/rel_1_1/core/… 【参考方案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")`
【讨论】:
以上是关于如何在sqlalchemy中选择多列连接的特定列?的主要内容,如果未能解决你的问题,请参考以下文章