繁体   English   中英

Magento SQL查询-按类别过滤产品

[英]Magento SQL Query - Filter products by category

我使用以下SQL查询来检索产品:

$query = "SELECT *,m.m_name,m.m_website FROM belvg_countdown c 
INNER JOIN catalog_product_entity e ON e.entity_id=c.entity_id
LEFT JOIN manufacturers_products mp ON c.entity_id=mp.product_id
LEFT JOIN manufacturers m ON mp.manufacturers_id=m.manufacturers_id
WHERE DATE_FORMAT(expire_datetime_off , '%Y-%m-%d') > DATE_FORMAT(NOW() , '%Y-%m-%d')
AND DATE_FORMAT(expire_datetime_on , '%Y-%m-%d')!=DATE_FORMAT(NOW() , '%Y-%m-%d')
AND entity_type='product'";

现在,我还将添加一条语句以仅加载名为“功能”类别的产品。 您能否帮助我了解我应该比较/查询什么才能只获得“精选”产品?

谢谢。

参见下面的URL,这对您非常有帮助

Magento-> addCategoryFilter-按根类别过滤产品集合

或尝试一下

好吧,我认为这可行,虽然没有进行太多测试,但是似乎可以解决问题。 您需要首先获取商店的根类别ID,然后加入一些字段,以便可以访问产品“ category_id”,然后使用该过滤器进行过滤:

$_rootcatID = Mage::app()->getStore()->getRootCategoryId();

$_testproductCollection = Mage::getResourceModel('catalog/product_collection')
->joinField('category_id','catalog/category_product','category_id','product_id=entity_id',null,'left')
->addAttributeToFilter('category_id', array('in' => $_rootcatID))
->addAttributeToSelect('*');
$_testproductCollection->load();

foreach($_testproductCollection as $_testproduct){ 
    echo $this->htmlEscape($_testproduct->getName())."<br/>"; 
};

您不需要所有此查询即可从特定类别中获取有效产品。 使用集合。

$producs = Mage::getModel('catalog/category')->load(#categoryid or $_category->getId())
            ->getProductCollection()
            ->addAttributeToSelect('*')
            ->addAttributeToFilter('is_saleable', 1)
            ->joinField('is_in_stock', 'cataloginventory/stock_item', 'is_in_stock', 'product_id=entity_id', '{{table}}.stock_id=1', 'left');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM