我遇到了where条件和内连接条件的问题。
他们是:
例如:
select * from table1 T
inner join table2 F on F.tkey=T.tkey and F.date >= '20140104'
和
select * from table1 T
inner join table2 F on F.tkey=T.tkey
where F.date >= '20140104'
**这里执行得更快,为什么?
答案 0 :(得分:1)
任何SQL查询的执行顺序是:
FROM - > ON - > JOIN - >在哪里 - > GROUP BY - > WITH CUBE或WITH ROLLUP-> HAVING-> SELECT-> DISTINCT-> ORDER BY - > TOP
所以第一个会执行得更快,因为它会在加入自身的同时根据给定的条件过滤行,其中第二个查询将首先连接表,然后去过滤行