我有三個我正在存儲的主要項目:Articles,Entities和Keywords。這使得5個表格:基於兩個表關係的SQL頂級記錄
article { id }
entity {id, name}
article_entity {id, article_id, entity_id}
keyword {id, name}
article_keyword {id, article_id, keyword_id}
我想獲得包含TOP 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 2014-11-19 00:47:33
@Strawberry,您能不能從通知複製/粘貼告訴用戶放入DLL並轉到SQL小提琴。通過提供的信息,這些流利的人可以弄清楚,我知道我看過很多這些粘貼評論。 – DRapp 2014-11-19 02:42:13
我提供了一個答案,另一個提到我可能誤解了你的想法,但不相信我做了。讓我知道如果我的目標是你正在尋找什麼...謝謝 – DRapp 2014-11-19 13:31:48