【发布时间】:2011-10-10 13:52:22
【问题描述】:
我有三个表:posts、tags 和 posts_has_tags(它们促进了帖子和标签之间的多对多关系)。一篇文章可以有任意数量的标签。
“帖子”表包含以下列: 发帖 文字
“标签”表有这些: 身份标签 名字
至于“posts_has_tags”表: post_idposts tags_idtags
我不能做的是提出一个查询来选择所有帖子,除了那些在分配给它们的“名称”列中具有特定值的标签(或标签)的帖子。似乎它应该包含“不存在”,但我无法完全理解它。
提前感谢您的帮助。
编辑:
另外,是否可以同时将结果集限制为某些标签?例如:
要排除的标签:a、b 包含标签:c
带有标签“a”、“f”的帖子不会进入结果集(因为如果包含标签,则没有)。 带有标签“a”、“b”、“c”的帖子也不会进入结果集(因为它的“a”和“b”是被排除的标签)。 带有标签'c'的帖子,'f'确实会进入结果集,因为'c'是包含的标签。
最终编辑 我终于找到了一个似乎有效且性能相当不错的解决方案:http://www.mysqldiary.com/a-many-to-many-relationship-table-solving-the-exclude-relation-problem/
【问题讨论】:
-
不清楚(已编辑部分),请您解释一下更好的方式。(重定向?)。
标签: mysql many-to-many