首页 > 解决方案 > AddSelect 在 searchQueryBuilder 使用条件

问题描述

我必须得到我的客户,并且所有客户都有一个(客户组)例如:客户/卖家/客人/买家......并且任何客户都有一个默认组,我只想获得这个客户的默认组当他是买方但当他是卖方时,我想获得任何其他组(当他在该组中时),我应该在 mysql 部分中执行此条件。这就是我所做的,但我遇到了一些问题

        $searchQueryBuilder->addSelect("CASE 
        WHEN cg.id_group = 4 THEN c.id_default_group 
        ELSE cg.id_group END as id_group");
        //dump($searchQueryBuilder);die;
        $searchQueryBuilder->leftJoin(
            'c',
            '' . pSQL(_DB_PREFIX_) . 'customer_group',
            'cg',
            'c.id_customer = cg.id_customer ' 
        );

        $searchQueryBuilder->leftJoin(
            'cg',
            '' . pSQL(_DB_PREFIX_) . 'group_lang',
            'gcl',
            'id_group = gcl.id_group AND gcl.id_lang = '.(int) $this->context->language->id
        );

在 LeftJoin 中使用别名列时出现错误

标签: phpmysqlsqlsymfonyphp-7

解决方案


这意味着有不止一列具有“ id_group ”名称。

例如,当我们在两个表“用户和主题”之间使用连接时,现在两个表都有列“id”,我们使用“group by id”

系统将错误列“id”不明确。所以我们需要从“group by”使用哪个表列id来判断。

像这样的东西:

“GROUP BY users.id”


推荐阅读