首页 > 解决方案 > 多对多发布到标签查询

问题描述

我在帖子和标签之间有多对多的关系

邮政

标签

TagToPost

希望搜索具有特定标签组合的帖子。

SELECT * FROM "Post"
JOIN "TagToPost" "tag" ON "tag"."B" = "Post".id
JOIN "Tag" ON "tag"."A" = "Tag"."id"
WHERE ("Tag"."id" = '1') AND 
(
    ("Tag"."id" = '2') OR 
    ("Tag"."id" = '3')
)

得到一个空的结果。有人可以指导我这个查询应该如何工作吗?

标签: sql

解决方案


我认为您不必加入所有三个表。由于您只需要发布信息。

SELECT * FROM "Post" where id in (
select postid from TagToPost Tag WHERE ("Tag"."id" = '1') AND 
(("Tag"."id" = '2') OR ("Tag"."id" = '3')))

推荐阅读