這與mysql query with AND, OR and NOT還有mysql has all values我已經解決了AND
部分問題,但是現在我現在還需要解決OR
和NOT
。mysql complex joins
只是爲了確認下面的語句給我,讓每個題目1,2和3
SELECT x.*
FROM Article x INNER JOIN
(SELECT t.article_id, COUNT(t.article_id)
FROM articleTopics t
WHERE t.topic_id IN ('1','2','3')
GROUP BY t.article_id
HAVING COUNT(t.article_id)>=3
ORDER BY COUNT(t.article_id) DESC
LIMIT 0,100) AS ilv
ON x.id=ilv.article_id
我所試圖做的就是添加的東西會排除也是所有文章查詢所有文章與主題4和5相關聯:NOT
我還希望添加包含主題6或7的文章,只要它們符合先前的約束。
E.g.
SELECT all Articles where the articles has
all the following topics (1,2,3) #AND
AND
none of the following topics (4,5) #NOT
AND
may have any of the following topics(6,7) #OR
我希望有道理!
如果要求一篇文章必須首先與1/2/3相關聯,我纔看到6和7的關鍵。聽起來像ARTICLETOPCS是一個多對多的表格,所以任何與1/2/3相關的任何東西都會被選中 - 包括那些帶有附加鏈接到6和/或7的東西。 – 2010-11-11 16:39:39
所以你需要文章在哪裏(主題在(1, 2,3)而不是(4,5)中的主題)或(6,7)中的主題? – Sam 2010-11-11 16:41:00
似乎像一個ERD將是有用的這個... – Sonny 2010-11-11 16:43:00