我有以下DB:
Posts
它有一个Id
,Tags
也有Id
,和TagsToPosts
有TagsToPosts.PostId => Posts.Id
和TagsToPosts.TagId => Tags.Id
FK关系的表.我需要以TagsToPosts
下列方式删除多个项目.我正在IList
通过解析字符串来创建.每个标签都有它的名字.我想删除所有TagsToPosts
指向单个帖子(TagsToPosts.PostId == mypostid
)的项目,以及指向Tag
不在我的名字的项目newTags
.
例如,我有一个帖子Id = 1
,有三个标签:1 => "tag1", 2 => "tag2", 3 => "tag3"
和ManyToMany关系表TagsToPosts
:1 => 1, 1 => 2, 1 => 3
所以这三个标签都链接到我的帖子.之后我将IList
通过解析字符串来创建一个新的.newList
包含:0 => "tag1", 0 => "tag2"
.现在我想从表TagsToPosts中删除第三个关系,因为我的新标签列表不包含名为"tag3"的标签.所以我需要找到一个区别.我知道我可以使用JOIN找到类似的项目,但如何找到差异?
我想在一个数据库查询中发生这种情况而不迭代每个项目以删除它.