Magento从自定义数据库表

时间:2015-04-27 05:24:34

标签: php database magento module

我借助此article创建了一个带有数据库表的自定义模块。

我有一个程序可以将库存从我的实体店同步到在线商店。每次我同步股票时,我都会将sku,名称,同步数据和时间以及数量添加到自定义数据库表中。表中同一个sku可以有多个条目,因为同一个产品可以多次同步。

最初,我正在使用这个来获取数据库表中唯一条目的报告,其中我只获得了skus。

$collections = Mage::getResourceModel('module/namespace_collection')->distinct(true)->addFieldToSelect('sku')->load();
foreach( $collections as $collection){
    //add to csv
}

现在我想获得具有该特定sku的最新同步数据和时间的唯一条目的sku和数量。为此,我尝试使用

$collections = Mage::getResourceModel('module/namespace_collection')->distinct(true)->addFieldToSelect('sku')->addFieldToSelect('qty')->addFieldToSelect('date')->load();

但我收到了自定义表格中的所有条目。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:6)

从集合中获取唯一记录

$collection = Mage::getResourceModel('module/namespace_collection')
    ->getCollection()
    ->distinct(true)
    ->addAttributeToSelect('sku')
    ->load();

以上收集如果没有返回欲望数据,试试这个

$collection = Mage::getResourceModel('module/namespace_collection')
   ->getCollection();
$collection->getSelect()->distinct(true);

但是这会根据id检索不同的值。如果要使用不同的sku值检索产品,则应按“sku”分组。

   $collection->getSelect()->group('sku');

如果要调试执行的查询:

$collection->getSelect()->__toString();