select q.*,q1.project_money,q2.project_money from (
select z.idcard,z.customer_name,z.manager_code,z.manager_name,z.dep_id,z.dep_name,z.dep_look from tb_crm_newmoney z
where z.project=1
and z.record_date='2018-11-05'
union
select z.idcard,z.customer_name,z.manager_code,z.manager_name,z.dep_id,z.dep_name,z.dep_look from tb_crm_newmoney z
where z.project=1
and z.record_date='2018-11-06'
)q ,( select * from tb_crm_newmoney qc
where qc .project=1
and qc .record_date='2018-11-05'
)q1,( select * from tb_crm_newmoney qc
where qc .project=1
and qc .record_date='2018-11-06'
)q2
where q.idcard=q1.idcard and q.idcard=q2.idcard
https://blog.csdn.net/mingover/article/details/79066064
3个SQL分开查询都 秒出 但是组合查询以后 5秒以上。 略显尴尬了
第一个括号里面不要用union,条件 z.record_date='2018-11-05'和z.record_date='2018-11-06'之间直接用or
其实不用写这么复杂的sql,即使你单个查询,有5个以上的sql语句,只要他们之间没有什么关联,可以并行查询,这样消费的时间取最长的那个sql
先用执行计划看看,可不可以优化索引;如果效果不佳,建议还是分开查询在代码中处理;要不就是修改需求或者修改表结构