Magento从自定义数据库表中获取唯一值

Jam*_*mes 1 php database module magento

我在本文的帮助下创建了一个带有数据库表的自定义模块.

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

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

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

现在我想获得具有最新同步数据和特定sku时间的唯一条目的sku和数量.为了得到这个我试图使用

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

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

Sup*_*t M 6

从集合中获取独特的记录

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

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

$collection = Mage::getResourceModel('module/namespace_collection')
   ->getCollection();
$collection->getSelect()->distinct(true);
Run Code Online (Sandbox Code Playgroud)

但是这将根据id检索不同的值.如果要使用不同的sku值检索产品,则应按"sku"分组.

   $collection->getSelect()->group('sku');
Run Code Online (Sandbox Code Playgroud)

如果要调试执行的查询:

$collection->getSelect()->__toString();
Run Code Online (Sandbox Code Playgroud)