在数据库客户端再执行一段查询,SELECT post.id 还有 post.title,再用一个 JSON_ARRAYAGG 组合一个 JSON 数组,数据项目可以用一下 tag.name 就是标签名。给这个栏目起个名字叫 tags
在 FROM 的后面设置一下数据来源,是 post 这个表, 然后用 LEFT JOIN 合并一下 post_tag 数据表,条件是 post_tag 的 postId 等于 post 里的 id。
接着再用 LEFT JOIN 合并 tag 数据表,合并的条件是 post_tag 里的 tagId 等于 tag 里的 id 。 最后还得再用一个 GROUP BY 按 post.id 分下组。
查询的结果就是一组内容列表,tags 栏目的值就是贴在这个内容上的标签列表。下面我们可以设置一下这个内容列表的过滤条件,按标签名作为过滤条件,在查询里添加一个 WHERE ,条件是 tag 的 name 的值等于 秋天。
执行一下,会提示 SQL 语法有点错误,这个是因为 WHERE 这个条件要在分组之前设置,把它放在 GROUP BY 这句话的上面。再执行一下。
得到的结果就是被贴上了 秋天 这个标签的内容列表,修改一下过滤条件, tag.name 等于 日落,执行一下这段查询。这回得到的就是被贴上了 日落 这个标签的所有的内容。