检查模型是否在SQLAlchemy查询中找到任何内容

时间:2018-02-13 14:53:37

标签: python sqlalchemy left-join

我正在寻找如何做左外连接的方法,如果右表返回None或者如果条目存在,则某些列等于某个值。例如:

session.query(
    Teacher, Student
).outerjoin(
    Student, Teacher.subject == Student.subject
).filter(
    or_(
        Student.name == "Mark",
        # no student was found and query should return (teacher, None)
    ),
    Teacher.name == 'John'
).all()

是否可以进行此类查询?

尝试过Student.is_(无),但is_()只能在列上调用而不是整个模型。

1 个答案:

答案 0 :(得分:0)

Student.id.is_(None)很好地解释了它,但我想知道是否有更好的解决方案:)