Sql server 使用语句或左联接3个表有什么更好?

Sql server 使用语句或左联接3个表有什么更好?,sql-server,Sql Server,请告诉我在mssql中2个查询之间有什么更好 ;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 或 与之相同,与仅有助于提高代码的可读性

请告诉我在mssql中2个查询之间有什么更好

;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


与之相同,
仅有助于提高代码的可读性


您可以使用EXPLAIN QUERY测试它,因为它们都是相同的,只是有助于提高代码的可读性。没有足够的信息来说明。你必须测试两者,“更好”是主观的。我个人会用两个左连接做第二个。我只在极其复杂的查询中提前具体化数据,以简化维护。比较它们的最佳方法是比较执行计划:。它们将准确地告诉您查询优化器将如何执行查询。
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