sql - 多对多发布到标签查询
问题描述
我在帖子和标签之间有多对多的关系
邮政
- ID
- 标题
标签
- ID
- 标题
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')
)
得到一个空的结果。有人可以指导我这个查询应该如何工作吗?
解决方案
我认为您不必加入所有三个表。由于您只需要发布信息。
SELECT * FROM "Post" where id in (
select postid from TagToPost Tag WHERE ("Tag"."id" = '1') AND
(("Tag"."id" = '2') OR ("Tag"."id" = '3')))
推荐阅读
- nodemcu - nodemcu - 写入内存中任意位置的问题
- tensorflow - TensorFlow:双射器中的变量不能重用
- laravel-5.6 - Laravel 5.7.2 中的路由问题
- c++ - 指向成员的指针对托管类无效
- python - Python:os.path.isfile 没有检测到文件
- spring - Spring Kafka 和事务
- php - Laravel 多认证导航栏
- json - 获取名称中带有“点”的 json 对象属性
- node-red - Node Red 如何设置属性 msg.complete
- python - 为什么一个 CNN 的 loss 长期减少,然后突然增加?