キーワードと、 IDと名前の col を持つカテゴリテーブルがあります(それらを単一のテーブルにマージすることはできません!)
ID、名前、テキストを含む article テーブルがあります。
そして、多対多接続テーブル:
キーワードのckw、列: key_id、article_id
カテゴリ、列のccat : cat_id、article_id
キーワード ID 5とID 7に属する記事を取得するクエリを作成できます。
SELECT articles.name FROM articles
JOIN ckw ON (ckw.article_id = articles.id)
WHERE ckw.key_id IN (5, 7)
GROUP BY ckw.article_id
HAVING COUNT(ckw.key_id) = 2
しかし、キーワード ID 5とID 7 に属し、カテゴリ ID 12 と ID 18 にも属する記事を取得したい場合はどうすればよいでしょうか? 正しいクエリがわかりません。