我有两张桌子:
Customers(Id,Name,TownId) T Towns(Id,Name)
我有一个这样的sql语句:
SELECT * FROM Customers INNER JOIN Towns ON Towns.Id = Customers.TownId WHERE Customers.Id > 5
首先会发生什么?
它会过滤Customers表,然后使用Towns表加入所选记录吗?
它会加入所有与城镇的客户,然后过滤?还是你说不出来?
解决方法
优化器将执行它认为最快的任何操作.
您可以使用联接提示强制某些行为,或者使用统计信息和索引来鼓励某些行为.但是,通常最好信任Optimizer.
如果您想详细解释查询的执行方式,请查看execution plan.