首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从table1中选择某些日期之间在表2中没有记录的记录

如何从table1中选择某些日期之间在表2中没有记录的记录
EN

Stack Overflow用户
提问于 2012-10-10 01:34:27
回答 2查看 82关注 0票数 0

我有客户表和另一个与他们相关的销售活动(电话,电子邮件ecc)。我需要知道的是,例如,这些客户中有哪些在过去30天内没有联系过(没有活动)。

这是我想要做的:

代码语言:javascript
复制
SELECT crm_customers.id, crm_ customers.companyname
FROM crm_ customers 
LEFT JOIN crm_activities on crm_customers.id = crm_ activities. Customerid
WHERE crm_ activities.createddate < (getDate() – 30)

问题是,即使客户最近有活动,它也会返回活动超过30天的客户。我只需要得到在过去30天内没有任何销售活动的客户,谢谢你的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-10 02:05:48

代码语言:javascript
复制
SELECT crm_customers.id, crm_customers.companyname
FROM crm_customers 
LEFT JOIN crm_activities 
  on crm_customers.id = crm_activities.Customerid
 and DATEDIFF(DD, crm_activities.createddate, getdate()) < 30
where crm_activities.Customerid is null

这是连接中的条件与where中的条件不同的情况

为了提高速度,我怀疑对子查询的连接。它为查询优化器提供了更多的优化选项。不需要distinct。假设crm_activities.Customerid被编入索引,这是对索引的连接。对于子查询,它将使用索引来创建列表,但是子查询的输出不会被索引。

将取决于你的数据。我有一张大桌子可以测试。

查询计划不同。

在循环连接上,散列连接的速度是合并连接的两倍,是十倍

如果没有被排除,那么它将是死气沉沉的。

如果许多人被排除在外(在过去30年中已经联系过),它将出现在哪里。

票数 0
EN

Stack Overflow用户

发布于 2012-10-10 01:38:46

这可能会对您有所帮助:使用子查询:

代码语言:javascript
复制
select 
    cust.id, cust.compayname
from
    crm_customers as cust
    left join (
        select 
            * 
        from 
            crm_activities 
        where 
            createddate >= (getDate() - 30)
    ) as act on cust.id = act.customerId
where
    act.customerId is null

这样就排除了在过去30天内有活动的所有客户。

您可能希望通过执行以下操作进一步清理此问题:

代码语言:javascript
复制
select 
    cust.id, cust.compayname
from
    crm_customers as cust
    left join (
        select distinct 
            customerId 
        from 
            crm_activities where createddate >= (getDate() - 30)
    ) as act on cust.id = act.customerId
where
    act.customerId is null

这是相同的基本思想..。唯一的问题是,第二个选项只返回包含活动的客户的Ids。我认为这可能会优化外部where子句,但它可能对子查询的性能产生影响(没有免费的午餐)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12805342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档