我已经成功地通过以 AND 方式匹配标签来获取文章过滤。
这是我当前的代码:
SELECT *
FROM articles a
JOIN article_tags a_t ON a_t.article_id = a.id
LEFT JOIN tags t ON t.id = a_t.tag_id
WHERE t.caption IN ('fire', 'water', 'earth')
HAVING COUNT(DISTINCT t.caption) = 3
在哪里:
- 文章是我要获取的文章,带有 id、标题等...</li>
- tags是标签列表,带有 id 和标题
- article_tags一个关系表,带有 article_id 和 tag_id
现在的问题是,匹配后,我想检索每篇文章的所有标签。即使它们被 3 个不同的匹配,一个可能有 5 个标签,其他 4 个标签,我希望它们包含在每一行中。在某些“标签”列中,诸如“标签,标签,标签”之类的东西或我可以解析的任何东西。
有任何想法吗?我找不到绕过它的方法...