2014-06-10 87 views
0

我試圖根據任何特定屬性找出具有重複值的產品。假設我有一個屬性MPN,並且必須獲得所有共享相同MPN的產品。我設計了一個可以部分工作的查詢,但是我發現它調用了幾個屬性值唯一的產品。查找具有重複屬性值的產品

select e.entity_id as ID,n.value as name,e.sku as sku,m.value as mpn from `catalog_product_entity` as e 
     left join `catalog_product_entity_varchar` as m 
     on e.entity_id = m.entity_id and m.attribute_id=156 
     left join `catalog_product_entity_varchar` as n 
     on e.entity_id = n.entity_id and n.attribute_id=71 
     group by m.value having count(*)> 1 order by e.entity_id asc 

似乎我的邏輯不夠公平,無法得到我想要的東西。

任何數據庫大師能幫助我嗎?

回答

0

我已通過應用另一個查詢來濾除結果來解決此問題。這可能不是一個好的解決方案,但它幫助了我。

從上面的查詢得到結果後,我使用foreach循環來查找屬性值是否唯一。

foreach($QueryCollection as $data){ 
     $query1 = "select * from catalog_product_entity_varchar as cpev where cpev.attribute_id=156 and cpev.value='".$data['mpn']."'"; 
     $IsDuplicate = $_conn2->fetchAll($query1); 
     if(count($IsDuplicate)>1){ 
      //found this as duplicate 
     } 
    } 

我有大約200非常少的產品,所以這對我來說是好的,但我想這是不利於高計數。