当前位置: 代码迷 >> Sql Server >> 请教这个 sql有没有更高效的写法?十分感谢
  详细解决方案

请教这个 sql有没有更高效的写法?十分感谢

热度:132   发布时间:2016-04-24 08:49:05.0
请问这个 sql有没有更高效的写法?十分感谢!
本帖最后由 blackkettle 于 2015-10-21 15:49:47 编辑
各位达人,

我在做项目的时候,经常要做如下的两个表的关联,

TableA表字段: 

id   int,
createdate   varchar(19), 精确到年月日时分秒

                 
TableB表字段:

id   int,
transactiondate,   varchar(19), 精确到年月日时分秒
amount,    int
commodity_id   int
 




Select a.*, b.*
From  TableA a
Left Join TableB b
On a.id = b.id
Where b.transactiondate >= dateadd(day,-30, a.createdate )
And b.transactiondate <= a.createdate


不过这个sql 在 left join on 这一步时就产生了大量的记录。

请问达人们有没有好的建议?

十分感谢!
------解决思路----------------------
由于where条件中用到了TableB的列,所以left join没有意义,可改为 inner join.
------解决思路----------------------
其他的没什么好优化的了,在关联条件和where条件上建好索引即可。
------解决思路----------------------

关联字段上建立索引试试
  相关解决方案