在SQLAlchemy中查询多对多关系

时间:2011-07-01 02:16:13

标签: python sqlalchemy

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

我想查询关键字列表,返回其中任何一个匹配的博客帖子。但是,如果有一个简单的方法可以解决这个问题我就无法解决。如果我添加多个过滤器,请反复执行

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

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

感谢您的帮助;我无法弄清楚我是否遗漏了什么。

1 个答案:

答案 0 :(得分:22)

我想你只想要

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

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