我正在编写一个类似于博客软件的网络应用程序。有如下三张表
Posts Table: Post_id,Post_Text
Post_Tags Table: Post_id,Tag_id
Tags Table:Tag_id,Tag_name
Run Code Online (Sandbox Code Playgroud)
我很难概念化一个 SQL 查询,该查询将返回在给定集合中具有“所有”标签的帖子。
这就是关系划分。
使用GROUP BYandCOUNT或 double NOT EXISTS。
第一种方法的一个例子是。
SELECT pt.Post_id, p.Post_Text
FROM Post_Tags pt
JOIN Posts p ON p.Post_id = pt.Post_id
WHERE pt.Tag_id IN (1,2,3)
GROUP BY pt.Post_id
HAVING COUNT(DISTINCT pt.Tag_id) = 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1967 次 |
| 最近记录: |