Mysql内部连接问题
这给了我所有包含上述两个实体的文章Mysql内部连接问题,mysql,subquery,inner-join,Mysql,Subquery,Inner Join,这给了我所有包含上述两个实体的文章 SELECT COUNT(ArticlesEntity.article_id) AS article_count FROM articles_entities ArticlesEntity WHERE ArticlesEntity.entity_id IN ('ENTITY_ID_1','ENTITY_ID_2') GROUP BY ArticlesEntity.article_id HAVING article_count>=2 现在我想在这
SELECT COUNT(ArticlesEntity.article_id) AS article_count
FROM articles_entities ArticlesEntity
WHERE ArticlesEntity.entity_id IN ('ENTITY_ID_1','ENTITY_ID_2')
GROUP BY ArticlesEntity.article_id
HAVING article_count>=2
现在我想在这个查询中添加一些东西,排除任何具有“entity\u ID\u 3”的实体
我尝试了以下操作,但返回的结果相同:
SELECT COUNT(ArticlesEntity.article_id) AS article_count
FROM articles_entities ArticlesEntity
WHERE ArticlesEntity.entity_id IN ('ENTITY_ID_1','ENTITY_ID_2')
AND ArticlesEntity.entity_id NOT IN ('ENTITY_ID_3')
GROUP BY ArticlesEntity.article_id
HAVING article_count>=2
我错过了什么/做错了什么
提前感谢您的查询必须比您在这里显示的内容更多,因为从您在问题中显示的内容来看,两个查询的结果应该是相同的(如果实体_id等于id_1或id_2,它已经不等于id_3) 编辑: 对不起,我注意到两件事。 1) 在你的问题陈述中,你说结果是相同的(如预期的)。 2) 在你的标题中,你说“内部连接问题”,但是。。。您没有内部连接。请尝试以下操作:
SELECT COUNT(ArticlesEntity.article_id) AS article_count
FROM articles_entities ArticlesEntity
WHERE ArticlesEntity.entity_id IN ('ENTITY_ID_1','ENTITY_ID_2')
AND NOT EXISTS (
select 1
from articles_entities
where article_id = ArticlesEntity.article_id
and entity_id = 'ENTITY_ID_3')
GROUP BY ArticlesEntity.article_id
HAVING article_count>=2
如果表别名是您正在使用的唯一表,是否有任何理由使用它?