【问题标题】:Querying a many-to-many relationship in SQLAlchemy在 SQLAlchemy 中查询多对多关系
【发布时间】:2011-09-26 10:39:00
【问题描述】:

我有一个非常标准的多对多关系,类似于 ORM 教程中的博客 -> 关键字关系。

我想查询关键字列表,返回其中任何一个匹配的博客文章。但是,我无法确定是否有一种简单的方法可以做到这一点。如果我添加多个过滤器,重复做

.filter(Blog.keywords.any(Keyword.name == 'keyword')) 

然后我得到一个“AND”/“EXISTS”查询,这样只会返回包含所有这些关键字的帖子。有没有一种简单的方法可以作为“或”查询来执行此操作,或者我是否需要使用 join()。

感谢您的帮助;我不知道我是否遗漏了什么。

【问题讨论】:

    标签: python sqlalchemy


    【解决方案1】:

    我想你只是想要

    .filter(Blog.keywords.any(Keyword.name.in_(['keyword1', 'keyword2', ...])))
    

    我正在使用http://www.sqlalchemy.org/docs/05/ormtutorial.html#common-filter-operators 作为参考

    【讨论】:

    • 谢谢,_in 正是我忽略的。
    • 如果你想快速尝试:.join(Blog.keywords).filter(Keyword.name.in_(['keyword1', ...])
    猜你喜欢
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 2018-02-24
    • 2021-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    相关资源
    最近更新 更多