2012-05-03 62 views
-3

enter image description hereMagento的選擇SKU使用屬性值

,我需要選擇其中的SKU = PARTNO和MEM1600-2U6D名優產品=思科 和條件=新

任何人能爲此提供解決方案我。

+0

你確定Partno在'eav_attribute'中是大寫嗎?在Magento中,大寫屬性代碼是非典型的。 – benmarks

回答

2
 
$collection = Mage::getModel('catalog/product') 
->getCollection() 
->addAttributeToSelect('*') 
->addFieldToFilter(array(
    array('attribute'=>'partno','eq'=>'MEM1600-2U6D'), 
)) 
->addFieldToFilter(array(
    array('attribute'=>'brandname','eq'=>'Cisco'), 
)) 
->addFieldToFilter(array(
    array('attribute'=>'condition','eq'=>'New'), 
)) 

我不確定。此外,您可以嘗試使用UNION來實現您的目標。

嗯,我會嘗試一些LIK這樣的:

 
SELECT sku 
FROM catalog_product_entity 
WHERE 
entity_id in (
    SELECT entity_id from catalog_product_entity_varchar WHERE attribute_id = (SELECT attribute_id from eav_attribute WHERE name='Partno' LIMIT 1) AND value = 'MEM1600-2U6D' 
    UNION 
    SELECT entity_id from catalog_product_entity_varchar WHERE attribute_id = (SELECT attribute_id from eav_attribute WHERE name='brandname' LIMIT 1) AND value = 'Cisco' 
    UNION 
    SELECT entity_id from catalog_product_entity_varchar WHERE attribute_id = (SELECT attribute_id from eav_attribute WHERE name='Condition' LIMIT 1) AND value = 'new' 
) 

那麼你可能

GROUP by entity_id HAVING COUNT(*) = 3 

這樣的事情。意思是說,如果我們擁有3個Entity_id的屬性,這意味着它適合我們的情況。

0

條件列在哪裏?

編輯:N/m,我剛纔看到。你不能使用該表設置。條件/品牌必須是一個單獨的列或表格,而不是價值。通過價值欄中的條件,它有自己的SKU,所以你會有2個SKU,一個用於產品,另一個用於它的狀態。

+0

patno,品牌名稱和條件屬性 –

+0

我不能改變表結構的人.......任何方式謝謝。 –

+0

您期待的是什麼SKU? MEM1600-2U6D擁有一個SKU,無論品牌和條件如何。該SKU是0001.思科也具有相同的SKU,NEW也是如此。這就是3個SKU的0001.一個老的MEM1600-2U6D也有3個SKU,但那些將是0001,0001,0004。 – Styphon