假设我有两种类型的对象,Movies
和Tags
,与ORM中的many to many relationship相关联,并且secondary
指示了一个关联表relationship()
的参数,我希望能够找到所有Movies
而不是Tags
?我会运行什么样的查询来实现这种效果?
答案 0 :(得分:2)
如果TagId是Movies对象的一部分,这将是检查电影上的TagId是否为空的简单情况:
session.query(Movies).filter(Movies.TagId == None).all()
但你的多对多评论暗示了一个MoviesTags链接实体,所以它更棘手,并且涉及使用左外连接链接到MoviesTags。
有a good guide to writing and debugging个类似的SQL查询。你基本上想要最终得到:
select Movies.name from Movies
left outer join MoviesTags on Movies.MovieId = MoviesTags.MovieId
where MoviesTags.TagId is null
答案 1 :(得分:2)