2013-12-19 24 views
0

我试图建立一个基于三个结果列表加入多嵌套的MySQL语句连接和鲜明有限公司订购

我已经建立的潜在客户表,我的销售团队需要对它们连接的导线行动事件记录记录到潜在客户。 1导致可以有很多音符。每个音符都有一个时间戳和一个日期/时间字段,他们可以设置未来日期,以安排回叫和约会。

我在构建列表时没有任何问题,所有的线索都与它们各自的事件记录相关联,但是我想在这种特定情况下做的是查询与仅包含“最新”/ date_time列中的最高值。

在过去的几天中,我一直在关于堆栈特别是在这里试图从我的陈述中获得期望的结果。无论我使用什么(GROUP BY date_time ASC LIMIT 1)或(ORDER BY date_time ASC LIMIT 1),我都会得到所有的带有所有相关事件记录记录的引导记录,或者我得到1,我甚至尝试构建每个lead.id只有最高计划记录的视图。

SELECT 
    rr_leads.id AS 'Lead', 
    rr_leads.first, 
    rr_leads.last, 
    rr_leads.company, 
    rr_leads.phone, 
    rr_leads.email, 
    rr_leads.city, 
    rr_leads.zip, 
    rr_leads.status, 
    z.noteid, 
    z.taskid, 
    z.scheduled, 
    z.event 

    FROM rr_leads 
    LEFT JOIN 
     ( 
     SELECT 
    rr_lead_notes.lead_id, 
      rr_lead_notes.id AS 'noteid', 
    rr_lead_tasks.id AS 'taskid', 
    rr_lead_notes.date_time AS 'scheduled', 
    rr_lead_notes.task_note, 
    rr_lead_tasks.task_step AS 'event' 

     FROM rr_lead_notes 
     LEFT JOIN rr_lead_tasks 
    ON rr_lead_notes.task_note = rr_lead_tasks.task_step 
     AND rr_lead_notes.id IS NOT NULL 
     AND rr_lead_notes.task_note IS NOT NULL 
     GROUP BY rr_lead_notes.id DESC 

) z 

    ON rr_leads.id = z.lead_id 
    WHERE rr_leads.id IS NOT NULL 
    AND z.noteid IS NOT NULL 
    ORDER BY rr_leads.id DESC 
+0

您是否要求提供仅包含最近注释的潜在客户名单? – AgRizzo

+1

这是很多代码。我建议从1个表中选择两个字段,加上time_stamp。按time_stamp desc和limit排序1.继续构建它,直到您停止获得预期结果。 –

+0

我想选择每个潜在客户只有最近/未来的事件记录 – Ichimonban

回答

1

以下是获取与最近事件关联的数据的一般想法。您可以针对您的特定情况进行调整。

select yourfields 
from table1 join othertables etc 
join 
(select id, max(time_stamp) maxts 
from table1 
where whatever 
group by id) temp on table1.id = temp.id 
and table1.time_stamp = maxts 
where whatever 

确保主查询和子查询中的where子句相同。