1

我有一个关键字和一个带有ID名称col 的类别表(我不能将它们合并到一个表中!)

有一个带有 ID、名称、文本的文章表。

以及多对多连接表:

  • ckw关键字,列:key_id,article_id

  • ccat用于类别,列:cat_id、article_id

我可以编写一个查询来获取那些属于关键字 ID 5ID 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 的文章怎么办?我想不出正确的查询。

4

1 回答 1

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 
于 2012-09-08T10:42:09.567 回答