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

SqlAlchemy-按关系属性过滤

艾宁
2023-03-14
问题内容

我在SQLAlchemy上没有太多经验,并且有一个我无法解决的问题。我尝试搜索,并且尝试了很多代码。这是我的课程(简化为最重要的代码):

class Patient(Base):
    __tablename__ = 'patients'
    id = Column(Integer, primary_key=True, nullable=False)
    mother_id = Column(Integer, ForeignKey('patients.id'), index=True)
    mother = relationship('Patient', primaryjoin='Patient.id==Patient.mother_id', remote_side='Patient.id', uselist=False)
    phenoscore = Column(Float)

我想查询所有母亲的phenoscore为(例如)的患者 == 10

如前所述,我尝试了很多代码,但我不明白。在我看来,合乎逻辑的解决方案是

patients = Patient.query.filter(Patient.mother.phenoscore == 10)

因为,您可以.mother.phenoscore在输出时访问每个元素,但是此代码不执行此操作。

是否有(直接)按关系的属性进行过滤的可能性(无需编写SQL语句或额外的连接语句),我需要多次进行这种过滤。

即使没有简单的解决方案,我也很高兴获得所有答案。


问题答案:

has()关系的使用方法(更具可读性):

patients = Patient.query.filter(Patient.mother.has(phenoscore=10))

或加入(通常更快):

patients = Patient.query.join(Patient.mother, aliased=True)\
                    .filter_by(phenoscore=10)


 类似资料:
  • 问题内容: 我有一个用户表和一个朋友表。朋友表拥有两个外键,分别指向我的用户表和状态字段。我试图能够从Friend对象上的User表中调用属性。例如,我希望能够执行诸如friend.name或friend.email之类的操作。 当我得到对象时,我所拥有的只是2,并且我想显示每个用户的所有属性,以便可以在表单等中使用该信息。我对sqlalchemy还是陌生的- 仍在尝试学习更高级的功能。这只是一个

  • 问题内容: 我有一个使用SA的 association_proxy 建模 的多对多 (开发人员和项目)关系。集合(每个项目的开发人员和每个开发人员的项目)工作正常,但我需要过滤关联本身的属性(状态)。像这样的东西(不起作用): __ 我想念什么?这是完整的测试代码: 问题答案: 关联代理的使用方法:

  • 问题内容: 我目前正在开发第一个Loopbackjs项目,并且面临着一个看似简单的问题:假设我有一个模型“ Post”和一个模型“ Tag”。帖子具有且属于许多标签。 现在,我需要列出所有带有特定标签的帖子。我只是想不通如何使用Loopback创建查询来实现此目的。我以为它会像这样工作,但不会: 我将不胜感激任何帮助。 问题答案: 对某些相关属性进行过滤并不像应该那么容易。有一个未完成的拉取请求,

  • 问题内容: 如果我有一个带有对象作为属性值的复杂对象,如何按嵌套的属性之一进行过滤? 可以使用OOB ng-repeat过滤器完成此操作吗? 数据 ngRepeat 问题答案: 您需要传入参数以过滤: 柱塞示例

  • 问题内容: 在这里看看示例: http : //docs.angularjs.org/api/ng.filter filter 您可以使用来按电话的任何属性进行搜索,也可以使用来按名称进行搜索,然后按名称对结果进行适当过滤(按预期方式输入电话号码不会返回任何结果)。 比方说,我有一个“名称”属性,“电话”属性,一个“秘密”性质的模型,我怎么会去通过过滤 都 在“名称”和“电话”属性和 没有 “秘密

  • 问题内容: 这是我当前模型的简化示例(我正在使用Flask SQLAlchemy扩展): 我正在尝试按喜欢的次数订购。 这是我基本上想发出的查询: 我只是无法在SQLAlchemy方面进行任何工作。 感谢您提供任何帮助。 问题答案: 我没有使用SQLAlchemy,所以我想尝试一下。我没有尝试使用你的模型,我只是写了一些新模型(尽管足够类似): 你想要加入likes表格,用于func.count计