2017-04-01 55 views
0

Plz告訴我在mssql中的2個查詢之間有什麼更好?什麼更好,WITH語句或左連接3個表?

;with ab as (select a.*,b.CategoryName from Products a 
left join Categories b on a.CategoryID = b.CategoryID where b.CategoryID = 2) 
select * from ab left join Suppliers c on ab.SupplierID = c.SupplierID 

select * from Products a left join Categories b on a.CategoryID = b.CategoryID 
left join Suppliers c on a.SupplierID = c.SupplierID 
where b.CategoryID = 2 
+0

是相同的,只有幫助,使代碼更易讀。 –

+0

沒有足夠的信息來說明。你必須測試兩者,而「更好」是主觀的。我個人會做第二個與左邊的兩個連接。我只提前在極其複雜的查詢中實現數據,以簡化維護。 – xQbert

+1

比較它們的最佳方式是比較執行計劃:http://stackoverflow.com/a/7359705。他們會精確地告訴你查詢優化器如何執行查詢。 – aschmied

回答