2
少なくともタグ「Tag1」と「Tag2」を持つすべての記事を効率的に選択する必要があります。 これは、次のデータベーススキーマとスタンダールの方法です:MySQLで一連のタグを持つすべての記事を効率的に取得する
articles(id, title)
article_tag(articleid, tagid)
tag(id, name)
SELECT a.*
FROM article a
INNER JOIN (SELECT at.articleid
FROM article_tag at
INNER JOIN article a
ON a.id = at.articleid
INNER JOIN tag t
ON t.id = at.tagid
WHERE t.name IN ("Tag1","Tag2")
GROUP BY at.articleid
HAVING Count(at.articleid) = 2) aa
ON a.id = aa.articleid
は、より効率的な方法のパフォーマンスが賢明ではありませんか?
タグの最大数に制限はありますか? –
いいえ、最大制限はありませんが、最小値は2つのタグ – evodevo
サブクエリのアーティクルテーブルを使用した結合を削除できます。 – DavidEG