2010-11-11 58 views
0

這給了我所有包含上述實體的文章。Mysql內部加入問題

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_ID_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 

我缺少/做錯了嗎?

在此先感謝

+0

是否有使用表的別名,如果它是你正在使用的唯一表中的任何原因? – Danosaure 2010-11-11 23:53:44

回答

1

嘗試類似:

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 
0

必須有比你顯示什麼這裏,因爲你在你的問題出什麼,結果應該是兩個查詢相同(如果ENTITY_ID等於更多查詢到id_1或id_2,它已經不等於id_3)。

編輯: 對不起,剛纔注意到了兩件事。 1)在你的問題陳述中,你說結果是相同的(如預期)。 2)在標題中,你會說「內部加入問題」,但是......你沒有內部加入。