表1是consllorlead
表2 - 反馈
表3 - 跟进
情景是在辅导员主页上,数据以下列格式显示在所有3个表格中 -
Leadid | Mobileno |来电者姓名| leadstatus |后续数量| followupdate |下一次日期
为此,我使用3个MySQL quires。
现在我的查询是 -
我使用LEFT JOIN在第一次查询中从表1(顾问主管)和表2(反馈)中获取记录(leadid,mobileno,callername,leadstatus),因为我想要表1中的所有记录(顾问主管)
在第二个查询中,我从表3(后续)中获取记录(没有后续跟踪)
从第3个查询开始,我从表3(后续)中获取后续日期和下一个日期
列描述 -
跟进次数 - 特定潜水员在此处显示的跟进次数。 (如果采取3次后续,则结果为3)
跟进日期 - 此处显示最新的跟进日期。 (如果3次随访,则第3次随访记录)
Nextdate - 此处显示下一次跟进的日期。 (如果3次随访,则第3次随访记录)
从查询2和查询3中获取记录后,我将后续表的followup_lead_id列与advllorlead表的leadid列进行比较,使用if else条件和leadid匹配时我显示该记录。
所有记录都按要求显示,但需要很长时间,因为有牵头比较(后续表中有大约12000条记录,并且会逐日增加)。这会增加页面加载时间,通常需要15分钟才能完成。
对于解决方案,我必须在单个查询中获取所有3个表的数据。但我无法根据要求创建此单个查询以获取记录。
Leadid | Mobileno |来电者姓名| leadstatus |后续数量| followupdate |下一次日期
10125 | 95852 ***** |约翰|新鲜铅| 3 | 16-06-2017 | 22-06-2017
16-06-2017 is latest followup taken date of that particular lead
22-06-2017 is a date when next followup will take
请帮帮我。
答案 0 :(得分:1)
尝试以下查询。我认为它应该按照你的要求工作。
select leadid, mobileno, callername, leadstatus,
( select count(fu.mobino) from followup fu
where fu.followup_lead_id = cl.leadid ) num_follow_ups,
( select date_format(max(fu.followupdate), '%d-%m-%Y') from followup fu
where fu.followup_lead_id = cl.leadid ) followupdate,
( select date_format(max(fu.nextdate), '%d-%m-%Y') from followup fu
where fu.followup_lead_id = cl.leadid ) nextdate
from counsellorlead cl
left join feedback fb on cl.leadid = fb.feedback_leadid
where cl.counsellorid = '1';