【发布时间】:2011-05-08 09:03:27
【问题描述】:
假设我有一个文章表,其中包含与主题的多对多关系。分配给文章的每个主题都有一个 type 字段,可以包含 AND、NOT 和 OR 三个值中的一个。
Articles
id
....
Topics
id
....
ArticleTopics
article_id
topic_id
type
我想创建一个查询,表示返回所有具有以下内容的文章:
ALL of the following topics: 1, 2, 3 (AND association)
AND
ANY of the following topics: 4, 5, 6 (OR association)
AND
NONE of the following topics 7, 8 (NOT association)
如何创建此查询?
提前致谢!
【问题讨论】:
-
工作不行,我有12年没做作业了!
-
ArticleTopics (article_id, topic_id)上是否有唯一索引?type列背后的确切含义是什么?为什么要使用“NOT”类型,而不是简单地在ArticleTopics表中没有条目? -
另外,对于要包含在结果中的文章,是否需要与第二个约束中的所有 3 个主题(4,5 和 6)进行 OR 关联,或者是否需要与只有一个?
标签: mysql boolean boolean-logic