gpt4 book ai didi

MySQL按标签查询帖子

转载 作者:行者123 更新时间:2023-11-29 19:13:01 25 4
gpt4 key购买 nike

我正在尝试搜索特定标签名称的所有帖子,同时仍然能够加入返回帖子的所有标签。

帖子

ID
...

标签

ID
姓名
蛞蝓

帖子标签

ID
帖子ID
标签_id

我将执行如下查询:

SELECT * FROM posts p 
INNER JOIN posts_tags pt ON pt.post_id = p.id
INNER JOIN tags t ON pt.tag_id = t.d
WHERE t.slug = 'foo'

这将返回带有标签 foo 的所有帖子,但不再加入与帖子关联的其他标签。我怎样才能以这样的方式编写它,以便我仍然可以获得帖子上的所有标签?

例如,假设我有一篇帖子,有 3 个与之关联的标签:catdogchimp。我想查询带有标签 dog 的帖子。如何构建一个查询来获取带有 dog 标签的帖子,确保 catchimp 标签也在结果?

最佳答案

如果您想要包含 foo 以及所有其他标签的所有帖子的所有标签,那么我认为您可以进行左连接。

SELECT * FROM posts p 
INNER JOIN posts_tags pt ON pt.post_id = p.id
LEFT JOIN tags t
ON pt.tag_id = t.d

上面将为您提供所有帖子以及帖子的相关标签。您可以按 slug 排序或者您可以添加一个带有左连接的子句来按您需要的标签进行过滤,如下所示:

    SELECT * FROM posts p 
INNER JOIN posts_tags pt ON pt.post_id = p.id
LEFT JOIN tags t
ON pt.tag_id = t.d AND t.slug IN ('foo') --add other tags if needed

关于MySQL按标签查询帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42934357/

25 4 0