各位达人,
我在做项目的时候,经常要做如下的两个表的关联,
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条件上建好索引即可。
------解决思路----------------------
关联字段上建立索引试试