【发布时间】:2014-11-04 17:06:07
【问题描述】:
我要存储三个主要项目:文章、实体和关键字。这有 5 个表:
article { id }
entity {id, name}
article_entity {id, article_id, entity_id}
keyword {id, name}
article_keyword {id, article_id, keyword_id}
我想获取所有包含前 X 个关键字 + 实体的文章。我可以通过entity_id/keyword_id 上的简单分组获得前 X 个关键字 或 实体。
SELECT [entity|keyword]_id, count(*) as num FROM article_entity
GROUP BY entity_id ORDER BY num DESC LIMIT 10
如何获取与热门实体和关键字相关的所有文章?
这是我的想象,但我知道它不起作用,因为实体分组限制了 article_id 的返回。
SELECT * FROM article
WHERE EXISTS (
[... where article is mentioned in top X entities.. ]
) AND EXISTS (
[... where article is mentioned in top X keywords.. ]
);
【问题讨论】:
-
如果您愿意,请考虑遵循以下简单的两步操作: 1. 如果您还没有这样做,请提供适当的 DDL(和/或 sqlfiddle),以便我们可以更轻松地复制问题。 2. 如果您尚未这样做,请提供与步骤 1 中提供的信息相对应的所需结果集。
-
@Strawberry,你能不能不要告诉一个人把 DLL 放到 SQL Fiddle 的通用复制/粘贴。有了提供的信息,那些流利的人可以弄清楚,我知道我见过太多这样的粘贴 cmets。
-
我提供了一个答案,另一个指出我可能误解了你想要的,但不要相信我做了。让我知道我是否符合您正在寻找的目标...谢谢
标签: mysql sql foreign-key-relationship has-many