获取属于指定关键字和类别的项目

时间:2012-09-08 10:26:21

标签: mysql sql many-to-many

我有关键字类别表,其中包含 ID 名称 col(我可以'将它们合并为一个表!)

有一个带有ID,名称,文字的文章表。

多对多连接表:

    关键字的
  • ckw ,列:key_id,article_id

  • ccat 的类别,列:cat_id,article_id

我可以编写一个查询来获取属于关键字ID 5的文章 AND 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 AND ID 7的文章,并且还属于类别ID 12 AND ID 18,该怎么办?我无法找出正确的问题。

1 个答案:

答案 0 :(得分:0)

SELECT articles.name
FROM articles
inner JOIN ckw ON ckw.article_id = articles.id
inner join ccat on ccat.article_id = articles.id
WHERE ckw.key_id IN (5, 7) 
and ccat.category_id in (12,18)
GROUP BY articles.article_id , articles.name 
HAVING COUNT(distinct ckw.key_id) = 2 
and count(distinct ccat.category_id) = 2