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
どこ:
- articleは、取得したい記事で、ID、タイトルなどがあります…</li >
- tagsは、id とキャプションを含むタグのリストです。
- article_tags article_id と tag_id を持つ関係テーブル
問題は、マッチング後、各記事にあるすべてのタグを取得したいということです。3つの異なるタグが一致していても、1つは5つのタグ、他の4つのタグは、各行に含めたい. 「タグ、タグ、タグ」のようなもの、または「タグ」列に解析できるものは何でも。
何か案は?私はそれを回避する方法を見つけることができません...