2012-09-25 68 views
-1

可能重複:
Need a linq to generate itself join如何通過LINQ生成此特殊查詢?

根據這個帖子Why does MYSQL higher LIMIT offset slow the query down?和這篇文章http://explainextended.com/2009/10/23/mysql-order-by-limit-performance-late-row-lookups/我需要一個LINQ創建以下查詢

SELECT news.* 
FROM (
     SELECT id 
     FROM news 
     WHERE cat_id= x 
     ORDER BY 
       id DESC 
     LIMIT m, n 
     ) o 
JOIN news 
ON  news.id = o.id 
+1

爲什麼你不能只是「選擇*從消息哪裏cat__id = x按id desc限制m,n」爲什麼雙重查詢? – BugFinder

+0

@BugFinder請閱讀這篇文章http://explainextended.com/2009/10/23/mysql-order-by-limit-performance-late-lookups/ –

+0

從工作中不能看:p - 因此評論我的可以看到 – BugFinder

回答

0

好吧,我試過...

var res = 
    from item in 
     (from newsItem in news 
     where newsItem.cat_id = x 
     select newsItem.id).Skip(m).Take(n) 

    join other in news 
    on other.id equals item.id 

    select item