如何在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中选择多列连接的特定列?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SQLAlchemy 核心选择除 postgresql 中的 1 个特定列之外的所有表列?

SQLAlchemy 仅从连接表中选择列

CSS3 多列布局:如何设置特定列的样式

R问题-如何在多列中选择包含某些字符串的多行?

如何使用 JPA 从多列构造模型实例

Pandas:按行从 DataFrame 的特定列中选择值