用于选择属于多个类别的帖子的 SQL 查询

Eas*_*onk 2 php mysql sql

我正在编写一个类似于博客软件的网络应用程序。有如下三张表

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 查询,该查询将返回在给定集合中具有“所有”标签的帖子。

Mar*_*ith 5

这就是关系划分

使用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)