当前位置: 首页 > 面试题库 >

如何在SqlAlchemy中执行“左外部联接”

秦才
2023-03-14
问题内容

我需要执行此查询::

select field11, field12
from Table_1 t1
left outer join Table_2 t2 ON t2.tbl1_id = t1.tbl1_id
where t2.tbl2_id is null

我在python中有这些类:

class Table1(Base):
   ....

class Table2(Base):
   table_id =  Column(
        Integer,
        ForeignKey('Table1.id', ondelete='CASCADE'),
    )
    ....

我如何从下面到达上面?


问题答案:
q = session.query(Table1.field1, Table1.field2)\
    .outerjoin(Table2)\ # use in case you have relationship defined
    # .outerjoin(Table2, Table1.id == Table2.table_id)\ # use if you do not have relationship defined
    .filter(Table2.tbl2_id == None)

假设field1并且field2来自Table1,并且您定义了一个关系,就应该这样做:

class Table2(Base):
    # ...
    table1 = relationship(Table1, backref="table2s")


 类似资料:
  • 本文向大家介绍如何在C#中使用linq扩展方法执行左外部联接?,包括了如何在C#中使用linq扩展方法执行左外部联接?的使用技巧和注意事项,需要的朋友参考一下 使用INNER JOIN 时,结果集中仅包含匹配的元素。不匹配的元素将从结果集中排除。 使用LEFT OUTER JOIN时 ,左集合中的所有匹配元素+所有非匹配元素都包含在结果集中。 让我们通过一个示例了解实现左外部联接。考虑以下部门和雇

  • 有人能让我知道我在里面做错了什么吗?我怎样才能让它工作?

  • 如何在中实现或。一个简单的例子很有帮助。

  • 问题内容: 我有一个网站,用户可以在其中查看电影列表,并为其创建评论。 用户应该能够看到所有电影的列表。此外,如果他们查看了电影,则他们应该能够看到他们给它的评分。如果不是,则仅显示没有得分的电影。 他们根本不在乎其他用户提供的分数。 考虑以下 我本质上想要的是 考虑以下内容: 两个测试都应打印完全相同的输出,但是,只有原始版本会吐出正确的结果表: orm会返回这个 任何试图加入其余主题的尝试,那

  • 问题内容: 我不了解左外部联接,右外部联接的概念,或者根本不理解为什么我们需要使用联接!我正在努力解决的问题以及正在处理的表格在这里:链接 问题3(b) 在SQL中构造命令以解决以下查询,解释了为什么必须使用(外部)联接方法。[5分]“找到每名工作人员及其his属(如果有)的姓名” 问题3(c)- 使用(i)join方法和(ii)子查询方法在SQL中构造命令以解决以下查询。[10分]“查找在计算机

  • 本文向大家介绍如何在R中执行两个数据帧的内部联接和外部联接?,包括了如何在R中执行两个数据帧的内部联接和外部联接?的使用技巧和注意事项,需要的朋友参考一下 内部联接仅返回左侧表在右表中具有匹配键的行,外部联接返回两个表中的所有行,左侧联接返回在右表中具有匹配键的记录。这可以通过使用合并功能来完成。 示例 内部联接 内部联接 外连接