2011-10-13 101 views
3

我有一個新聞數據庫表,其中有兩種文章:社交和官方(互斥)。形成這條SQL語句的正確方法是什麼?

我想要做的是將表中社交行的數量減少到一個特定的數字,同時留下官方新聞報道。

這裏是我想出迄今:

不過,我得到,指出ORDER BY clause should come after UNION not before錯誤。將ORDER BY移至內部SELECT的末尾,結果爲LIMIT clause should come after UNION not before

我明白錯誤信息,但我想知道是否有其他方法可以完成我想要做的事情。如果我將LIMIT子句移動到內部SELECT的末尾,那麼表中仍有20個以上的社交行(因爲它也會計算正式行)。

+0

我仍然不知道究竟你想做的事。 1.你不想刪除任何「官方」 - 行。 2.你想刪除所有「非官方」的行,除了 - 比方說 - 最新的20個。那是對的嗎? – Fildor

+0

這正是我想要做的。 – howettl

+2

有沒有辦法改變這種情況?我的意思是: 刪除新聞 Where IsOfficialNews = 0 AND(_id NOT IN(