我正在使用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