mysql - Magento-如何连接两个表,同时排除给定列上的重复条目?

标签 mysql magento

我是一名实习生,对 Magento 还很陌生。我觉得我已经开始掌握一些东西了,但是数据库访问功能对我来说仍然不是很直观,而且 MySQL 并不是我最擅长的技能。

现在,我正在创建一个模块,该模块将在后端显示一个自定义表,其中包含表“eav_attribute”中的“frontend_label”和“eav_attribute_option_value”中的“value”。我的表本身具有对 attribute_id 和 option_id 的外键引用,这是我将列连接到表的方法。

如果属性是为单个商店存储的,我的查询工作正常。问题是“eav_attribute_option_value”对于每个 store_id 都有重复的属性/选项对。也就是说,多个商店条目会导致我的表显示每个属性选项对的重复条目(我只希望每个属性选项对显示一次)。我想在我的查询上添加一个约束,以便以下查询仅返回属性选项对的唯一条目(实际上,忽略属性/选项对在“eav_attribute_option_value”中重复的事实,因为它们是为每个商店 ID)。我的查询如下,但我希望有人能为我指出正确的方向,因为我目前陷入困境。

谢谢大家!

    protected function _prepareCollection()
{
    $collection = Mage::getModel('landing/management')->getCollection();
    $collection->getSelect()
        ->join(array('eavattr' => 'eav_attribute'),'eavattr.attribute_id = main_table.attribute_id')
        ->join(array('opt'=>'eav_attribute_option_value'),'opt.option_id = main_table.option_id')
        ->reset(Zend_Db_Select::COLUMNS)
        ->columns(array('*'))
        ->columns(array('frontend_label'),'eavattr')
        ->columns(array('value'),'opt');
    $this->setCollection($collection);

    return parent::_prepareCollection();
}

最佳答案

我找到了答案,我可以按“frontend_label”和“value”进行分组,以避免在这种情况下出现重复条目​​。就我而言,代码现已变为:

        $collection->getSelect()
        ->join(array('eavattr' => 'eav_attribute'),'eavattr.attribute_id = main_table.attribute_id')
        ->join(array('opt'=>'eav_attribute_option_value'),'opt.option_id = main_table.option_id')
        ->reset(Zend_Db_Select::COLUMNS)
        ->columns(array('*'))
        ->columns(array('frontend_label'),'eavattr')
        ->columns(array('value'),'opt')
        ->group('frontend_label','value');

关于mysql - Magento-如何连接两个表,同时排除给定列上的重复条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14571408/

相关文章:

mysql - 是否可以使用azure在线发布本地数据库?

php - 将 SQL 连接到 Dreamweaver php 项目 : SQLSTATE[HY000] [2002] Connection refused

ruby-on-rails - 如何在 Rails 中解析 Redis 字符串(原来是 JSON)?

Magento - 如何在一页中显示某个类别的所有产品

php - 为什么我对 Magento Block 的 getTemplateFile 方法的调用返回 null?

php - Magento - 高级产品导入

php - 计算 1 列中的项目并将其分成两列

php - 获取查询到的id之前的id并进行处理

mysql - 计算字符串中两个或多个重复字符的数量

Magento 舍入问题 产品价格不含税