Мне нужен эффективный способ выбрать все статьи, по крайней мере, с тегами «Tag1» и «Tag2».
Это стандартный способ со следующей схемой базы данных:
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
Есть ли более эффективный способ повышения производительности?