我借助此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();
但我收到了自定义表格中的所有条目。有人可以帮我解决这个问题吗?
答案 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();