テーブル構造:
articles (id, content)
article_tags (article_id, tag_id)
tag (id, name)
任意のタグですべての記事を選択するには、「TAG1」と言います
SELECT a.*
FROM
(SELECT at.article_id AS id
FROM article_tags at
JOIN tags t ON t.Id = at.tag_id
WHERE t.name = 'TAG1') a1
JOIN articles a USING (id);
出力:
COLUMNS of articles after above query since used a.*
----------------
| id | content |
----------------
目的:
上記の実行中に、「TAG1」でフィルタリングされた記事のすべての列を取得します。
しかし、記事には複数のタグが含まれている可能性があるため、返される結果に追加の列が必要です。
だから私の返された列は
| id | content | using_tags |
+----+---------+-------------+
| 1 | content | TAG1,TAG2 |