gpt4 book ai didi

php - 使用 JOIN 获取记录并使用 group by 获取最新记录

转载 作者:行者123 更新时间:2023-11-29 10:45:52 24 4
gpt4 key购买 nike

辅导员领导表 - counsellorlead table

反馈表- feedback table

后续表格- followup table

表 1 为辅导员领导

表 2 - 反馈

表 3 - 后续

场景是,在辅导员主页上,所有 3 个表格的数据均按以下格式显示 -

铅 |莫比尔诺 |来电者姓名 |领先地位 |跟进次数 |关注更新 |下一个日期

为此,我使用了 3 个 MySQL 查询。

现在我的问题是 -

我使用 LEFT JOIN 在第一个查询中从表 1(辅导员领导)和表 2(反馈)中获取记录(leadid、mobileno、callername、leadstatus),因为我想要表 1(辅导员领导)中的所有记录

在第二个查询中,我从表 3(后续)中获取记录(后续)

从第三个查询中,我从表 3(后续)中获取后续日期和下一个日期

列描述 -

跟进数量 - 此处显示特定引导 ID 进行的跟进数量。 (如果进行 3 次后续操作,则结果为 3)

跟进日期 - 此处显示最新跟进日期。 (如果进行了 3 次跟进,则为第 3 次跟进记录)

下一个日期 – 此处显示下一次跟进的日期。 (如果进行了 3 次跟进,则为第 3 次跟进记录)

从查询 2 和查询 3 获取记录后,我使用 if else 条件将后续表的 followup_lead_id 列与 coachlorlead 表的 Leadid 列进行比较,当 LeadID 匹配时,我显示该记录。

所有记录都按要求显示,但是由于leadid比较,需要很长时间(followups表中有大约12000条记录,并且每天都会增加)。这会增加页面加载时间,通常需要 15 分钟,这已经太多了。

对于该解决方案,我必须在单个查询中获取所有 3 个表的数据。但我无法创建这个单个查询来根据要求获取记录。

铅 |莫比尔诺 |来电者姓名 |领先地位 |跟进次数 |关注更新 |下一个日期

10125 | 95852***** |约翰 |新鲜铅 | 3 | 16-06-2017 | 2017年6月22日

 16-06-2017 is latest followup taken date of that particular lead

22-06-2017 is a date when next followup will take

请帮帮我。

最佳答案

尝试以下查询。我认为它应该按您的要求工作。

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';

关于php - 使用 JOIN 获取记录并使用 group by 获取最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44586706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com