【问题标题】:Get the records using left join使用左连接获取记录
【发布时间】:2017-12-09 04:00:58
【问题描述】:

我尝试从手动创建的机会中获取记录,因此这意味着它不是通过从潜在客户转换或其他模块创建的。

我正在尝试做的是获取未从潜在客户转换的机会记录。

在下面,您将看到我的查询使用左连接导致机会使用 潜在客户表中的机会 id 和机会表中的机会 id。

但是,每当我尝试运行此查询时,它都不会显示在机会中手动创建的记录, 我只想获取机会中未转换和手动创建的记录。我可以知道它为什么不显示吗?谢谢大家。

$strQuery = " SELECT 
                *
             FROM
                leads l
            LEFT JOIN 
                opportunities O
            ON
                l.opportunity_id = O.id
            WHERE
                l.deleted = '0'
            AND
                O.deleted = '0'
            AND
                l.converted = '0'
            AND
                DATE_FORMAT(O.date_created, '%y-%m-%d') = CURDATE()";
//
$hQuery = $db->query($strQuery);
//
while ( $arRow = $db->fetchByAssoc($hQuery) ){

// My logic
}

【问题讨论】:

  • 这是因为fetchByAssoc 的参数错误,您应该传递查询的结果而不是查询本身。应该是$db->fetchByAssoc($hQuery) 。或者您可能只是遇到了 $db->fetchByAssoc($Query) 的拼写错误。
  • 您好 NuelG,感谢您的回答,但这是一个拼写错误,对此深表歉意。
  • 您是否尝试过删除DATE_FORMAT(O.date_created, '%y-%m-%d' 上的破折号。让它DATE_FORMAT(O.date_created, '%y%m%d')
  • 还没有,但我想我使用这种格式没有问题。因为当我尝试获取在当前日期创建的已转换记录时,它会显示,但是当我想显示从商机手动创建或未在当前日期转换的记录时,它也不会显示。

标签: php sql sugarcrm suitecrm


【解决方案1】:

我只想获取机会中没有手动转换和创建的记录

您可能需要反转表格关系,例如

SELECT *
FROM opportunities O
LEFT JOIN leads l ON O.id = l.opportunity_id
WHERE l.opportunity_id IS NULL
AND O.deleted = '0' 
AND DATE_FORMAT(O.date_created, '%y-%m-%d') = CURDATE()

这里没有相关的“领先”,只是一个“机会”。

【讨论】:

  • 好的,我明白了,我会尝试这样做。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-26
  • 1970-01-01
  • 1970-01-01
  • 2014-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多