我正在使用ASP.NET Web窗體並試圖從SQL服務器加載數據。下面是我如何做到這一點的僞代碼:減少往返數據庫
connect1 = connect("database")
categories = connect.query("select * from category")
loop categories as category
print category
connect2 = connect("database")
subCategories = connect2.query("select * from subCategory where category = @0", category)
loop subCategories as subCategory
print subCategory
connect3 = connect("database")
items = connect3.query("select * from item where subCategory = @0", subCategory)
loop items as item
print item
end loop 'items
connect3.close
end loop 'subcategories
connect2.close
end loop 'categories
connect1.close
正如你所看到的,有很多往返於我的腳本發生的情況,這是好的,當我只有幾個記錄,但有數百打交道時或更多,這需要永遠顯示數據。
我該怎麼做才能減少往返次數?我想從數據庫中一次獲得所有數據,然後在應用程序端對它們進行分類,但這有可能嗎?
在一個查詢中完成所有操作。看看[CTE](http://msdn.microsoft.com/en-us/library/ms190766%28v=sql.105%29.aspx)。這個問題更適合[codereview](http://codereview.stackexchange.com/) – nunespascal 2013-02-27 08:43:39
@nunespascal爲什麼選擇CTE? – dpp 2013-02-27 08:48:49
CTE,以便您可以遞歸地獲取子類別。 – nunespascal 2013-02-27 09:08:26