0
Plz mssqlの2つのクエリの間に何が良いか教えてください。WITHステートメントまたはleft join 3 tables?
;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
をEXPLAINでテストすることができ
は、コードを読みやすくするための唯一の助けを借りて、同じです。 –
通知する情報が不十分です。両方をテストしなければならないでしょうし、 "良い"は主観的です。私は個人的に2つの左の結合で2番目を行います。非常に複雑なクエリでは、データを事前にマテリアライズしてメンテナンスを簡素化しています。 – xQbert
それらを比較する最善の方法は、実行計画を比較することです:http://stackoverflow.com/a/7359705。クエリ・オプティマイザがクエリをどのように実行するかを正確に教えてくれます。 – aschmied