各位牛牛好:
初级Java程序员一枚
是这样的,公司领导突然有个怪需求(诅咒下),要查询用户在这段时间和另外一段时间都有的订购记录比如一张表 购买者,产品ID,购买时间 现在这张表的记录最多也就保存三个月,所以数据量在800W左右,下午自己写了一条自连接的语句 select o1.order_user from order_record o1,order_record o2 where o1.order_user=o2.order_user and o1.order_time between '2013-02-01 00:00:00' and '2013-02-07 23:59:59' and o2.order_time between '2013-02-08 00:00:00' and '2013-02-15 23:59:59';数据量300多万,order_user加了索引 查了将近两个小时 麻烦大家给个效率高的sql语句或者大家给个方案,需求就是,比如上周订购的用户,本周仍然有订购,或者是上月订购,本月仍有订购,就是两段时间内求交集的用户 小弟不胜感激啊,分都在这了mysql 查询优化
初级Java程序员一枚
是这样的,公司领导突然有个怪需求(诅咒下),要查询用户在这段时间和另外一段时间都有的订购记录比如一张表 购买者,产品ID,购买时间 现在这张表的记录最多也就保存三个月,所以数据量在800W左右,下午自己写了一条自连接的语句 select o1.order_user from order_record o1,order_record o2 where o1.order_user=o2.order_user and o1.order_time between '2013-02-01 00:00:00' and '2013-02-07 23:59:59' and o2.order_time between '2013-02-08 00:00:00' and '2013-02-15 23:59:59';数据量300多万,order_user加了索引 查了将近两个小时 麻烦大家给个效率高的sql语句或者大家给个方案,需求就是,比如上周订购的用户,本周仍然有订购,或者是上月订购,本月仍有订购,就是两段时间内求交集的用户 小弟不胜感激啊,分都在这了mysql 查询优化
create index xxx2 on order_record(order_user,order_time);
from (select order_user from [表A] where order_time between 时间点1 and 时间点2) as a ,(select order_user from [表A] where order_time between 时间点3 and 时间点4) as b
where a.order_user = b.order_user
select o1.order_user from order_record as o1 inner join order_record aso2 on o1.order_user=o2.order_user where o1.order_time between '2013-02-01 00:00:00' and '2013-02-07 23:59:59';
感觉后面的那个不需要