在prestashop 1.6中具有过滤天数的休眠用户

杰里·亚伯拉罕

我正在尝试使用左联接在$ this_select中添加以下查询,但无法正常工作

下面是我的工作查询,它​​工作正常:

  select      a.id_customer as id_customer,
        a.id_shop,
        a.email,
        a.lastname,
        a.firstname,
        max(c.date_add) as last_visit,
        IFNULL(max(b.date_add),'1001-01-01 00:00:00') as Last_order_date
 from        ps_customer a
 left join  ps_orders b
  on          a.id_customer = b.id_customer
 left join   ps_guest g 
 on          a.id_customer = g.id_customer
left join   ps_connections c
on          g.id_guest = c.id_guest
group by    a.id_customer
 having      to_days(Last_order_date) < to_days(now())- '30'

但是我的问题是,当我在控制器中的查询代码下方放置时,它没有采用第一个和第二个左连接:

    $this->_select='        
    a.id_shop,
    a.email,
    a.lastname,
    a.firstname,
    max(c.date_add) as last_visit,
    IFNULL(max(b.date_add),"'.$default_date.'") as Last_order_date
    ';

    $this->_join = '
    LEFT JOIN `'._DB_PREFIX_.'orders` b ON (a.`id_customer` =b.`id_customer`)';

    $this->_join ='left join   ps_guest g 
    on (a.id_customer = g.id_customer)';

    $this->_join ='left join   ps_connections c
    ON    (   g.id_guest = c.id_guest)      
    group by    a.id_customer
    having      to_days(Last_order_date) < to_days(now())- '.$dormant_filter_days.'';

我在上面的$ this_select或$ this_join中做错了吗?Bleow是数据库异常,我得到的问题是我没有在这里看到我的前两个联接,即它没有采用前两个联接

在此处输入图片说明

弗洛里安·勒迈特(Florian Lemaitre)

您将覆盖_join每次调用$this->_join =您应该使用$this->_join .=第二个也是最后一个联接。

$this->_select = '          
    a.id_shop,
    a.email,
    a.lastname,
    a.firstname,
    MAX(c.date_add) AS last_visit,
    IFNULL(MAX(b.date_add), "' . $default_date . '") AS Last_order_date';

$this->_join = 'LEFT JOIN `' . _DB_PREFIX_ . 'orders` b
    ON (a.`id_customer` = b.`id_customer`)';

$this->_join .= ' LEFT JOIN `' . _DB_PREFIX_ . 'guest` g 
    ON (a.id_customer = g.id_customer)';

$this->_join .= ' LEFT JOIN `' . _DB_PREFIX_ . 'connections` c
    ON (g.id_guest = c.id_guest)';

$this->_group = 'GROUP BY a.id_customer';

$this->_having = 'HAVING TO_DAYS(Last_order_date) < TO_DAYS(NOW()) - ' . $dormant_filter_days;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在prestashop 1.6中具有过滤天数的休眠用户

来自分类Dev

Prestashop使整数在smarty中爆炸

来自分类Dev

Prestashop中的产品信息

来自分类Dev

在prestashop中获取图像URL

来自分类Dev

Prestashop中的Paypal处理错误

来自分类Dev

在Prestashop中创建主页分页

来自分类Dev

Prestashop使整数在smarty中爆炸

来自分类Dev

在 prestashop 中显示产品附件

来自分类Dev

Prestashop 中的覆盖如何工作

来自分类Dev

Prestashop 1.6 中的产品状况

来自分类Dev

Prestashop插入类别会破坏用户界面

来自分类Dev

Prestashop 1.6中的替代控制器

来自分类Dev

在Prestashop 1.5中修改结帐过程

来自分类Dev

prestashop 1.4中的订单通知邮件

来自分类Dev

在Prestashop中定制注册表

来自分类Dev

如何在Prestashop中创建订单?

来自分类Dev

在prestashop中以不同语言复制内容

来自分类Dev

Prestashop中的首页模板?在哪里?

来自分类Dev

smarty PRESTASHOP 1.6.0.13中的未知标签“插件”

来自分类Dev

顶部菜单中的prestashop CSS问题

来自分类Dev

在Prestashop Web服务中获取客户订单

来自分类Dev

在Prestashop 1.6中覆盖邮件目录

来自分类Dev

Prestashop 1.6标头在模块中的位置

来自分类Dev

在prestashop DB中的表内复制

来自分类Dev

在Prestashop hook中包含文件时出错

来自分类Dev

Prestashop Smarty中的regex_replace问题

来自分类Dev

在prestashop产品URL中隐藏根类别

来自分类Dev

什么是prestashop中的开源扩散模型?

来自分类Dev

从Prestashop Web服务解析Android中的XML