我想从任何给定的日期移回去。帮助我从给定日期获得 3 个月的日期。
我已经尝试了DATE_SUB,DATE_ADD不返回任何结果并继续运行查询的函数。
SELECT * FROM Table a
INNER JOIN Tabel e
on a.MobileNumber=e.Phone_number
AND e.bill_date<a.invoice_date
AND e.bill_date>DATE_ADD(a.invoice_date,INTERVAL -3 MONTH)
查询保持运行,永不停止。如果我只是删除最后一个条件,它会在不到一秒钟的时间内显示结果。
按以下行添加索引可能有助于提高性能:
CREATE INDEX idx ON table_e (Phone_number, bill_date, col1, col2);
这里col1
和col2
是可能出现在SELECT
子句中的另外两列。 如果使用这个索引的策略,将是扫描相对较小的table_a
,它只有309条记录。 对于a
中的每个记录,MySQL将使用上面的索引在e
表中快速找到匹配的记录。
如果可以更新,那么最好在a.invoice_date
和 上创建index
。请找到相同的链接。