How to get product ids of specific category and not in other categories in Magento? Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Script to hide empty categories works but not with products without stockArray of product ids for a given category (ignoring is_anchor)How to get all products that aren't in a specific category in Magento?How to get all products from an array of specific categories and grouped by the categoriesHow to get category ids of specific store in Magento 2?Add category IDs to product collectionGet ids and names of parent categoriesHow to get category ids from product collectionMagento 2. How to get All Parent Categories Ids from current category IDHow to get all the Children Categories IDs of the Specific Category in Magento2

Short Story with Cinderella as a Voo-doo Witch

Apollo command module space walk?

Resolving to minmaj7

How to find out what spells would be useless to a blind NPC spellcaster?

What would be the ideal power source for a cybernetic eye?

How to deal with a team lead who never gives me credit?

Coloring maths inside a tcolorbox

2001: A Space Odyssey's use of the song "Daisy Bell" (Bicycle Built for Two); life imitates art or vice-versa?

Why is my conclusion inconsistent with the van't Hoff equation?

ListPlot join points by nearest neighbor rather than order

Use BFD on a Virtual-Template Interface

What LEGO pieces have "real-world" functionality?

How to find all the available tools in macOS terminal?

Overriding an object in memory with placement new

Is there a (better) way to access $wpdb results?

What to do with chalk when deepwater soloing?

How would the world control an invulnerable immortal mass murderer?

Using audio cues to encourage good posture

How to run gsettings for another user Ubuntu 18.04.2 LTS

What causes the vertical darker bands in my photo?

Why aren't air breathing engines used as small first stages

Output the ŋarâþ crîþ alphabet song without using (m)any letters

Can an alien society believe that their star system is the universe?

Using et al. for a last / senior author rather than for a first author



How to get product ids of specific category and not in other categories in Magento?



Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
Announcing the arrival of Valued Associate #679: Cesar Manara
Unicorn Meta Zoo #1: Why another podcast?Script to hide empty categories works but not with products without stockArray of product ids for a given category (ignoring is_anchor)How to get all products that aren't in a specific category in Magento?How to get all products from an array of specific categories and grouped by the categoriesHow to get category ids of specific store in Magento 2?Add category IDs to product collectionGet ids and names of parent categoriesHow to get category ids from product collectionMagento 2. How to get All Parent Categories Ids from current category IDHow to get all the Children Categories IDs of the Specific Category in Magento2



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








3















I want to get product ids of a specific category and product ids not in other categories only in a specific category.



For example,



category ids = 3, 4, 10 and product ids = 10, 12, 14 and category id 3 belong to product id 10 and category id 4 belong to product ids 10, 12, 14 and category id 10 belong to product id 14.



When I filter on category id = 4, it returns product ids 10, 12 and 14, but I want to return only product id 12 because I only want the product id which is not in other categories. In my filter category id 4 returns product ids 10,12 and 14 but I only want to product id 4 because 10 and 14 belong to other categories which I don't want.
I only want to product id 12 in filter. Which filter I used ?



$catIds = array(4);
$notCatIds = array(3, 10);
$productCollection = Mage::getResourceModel('catalog/product_collection')
->setStoreId(0)
->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id=entity_id', null, 'left')
->addAttributeToFilter('category_id', array('in' => $notCatIds))
->addAttributeToFilter('category_id', array('in' => $catIds))
->addAttributeToFilter('category_id', array('nin' => $notCatIds))
->addAttributeToFilter('category_id', array('nin' => array(2)))// 2 is default category id
->addAttributeToSelect('*');
$productCollection->getSelect()->group('product_id')->distinct(true);

echo '<pre>';
print_r($productCollection->getData());









share|improve this question
























  • Did you solve??

    – Gem
    Apr 23 '18 at 4:20


















3















I want to get product ids of a specific category and product ids not in other categories only in a specific category.



For example,



category ids = 3, 4, 10 and product ids = 10, 12, 14 and category id 3 belong to product id 10 and category id 4 belong to product ids 10, 12, 14 and category id 10 belong to product id 14.



When I filter on category id = 4, it returns product ids 10, 12 and 14, but I want to return only product id 12 because I only want the product id which is not in other categories. In my filter category id 4 returns product ids 10,12 and 14 but I only want to product id 4 because 10 and 14 belong to other categories which I don't want.
I only want to product id 12 in filter. Which filter I used ?



$catIds = array(4);
$notCatIds = array(3, 10);
$productCollection = Mage::getResourceModel('catalog/product_collection')
->setStoreId(0)
->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id=entity_id', null, 'left')
->addAttributeToFilter('category_id', array('in' => $notCatIds))
->addAttributeToFilter('category_id', array('in' => $catIds))
->addAttributeToFilter('category_id', array('nin' => $notCatIds))
->addAttributeToFilter('category_id', array('nin' => array(2)))// 2 is default category id
->addAttributeToSelect('*');
$productCollection->getSelect()->group('product_id')->distinct(true);

echo '<pre>';
print_r($productCollection->getData());









share|improve this question
























  • Did you solve??

    – Gem
    Apr 23 '18 at 4:20














3












3








3








I want to get product ids of a specific category and product ids not in other categories only in a specific category.



For example,



category ids = 3, 4, 10 and product ids = 10, 12, 14 and category id 3 belong to product id 10 and category id 4 belong to product ids 10, 12, 14 and category id 10 belong to product id 14.



When I filter on category id = 4, it returns product ids 10, 12 and 14, but I want to return only product id 12 because I only want the product id which is not in other categories. In my filter category id 4 returns product ids 10,12 and 14 but I only want to product id 4 because 10 and 14 belong to other categories which I don't want.
I only want to product id 12 in filter. Which filter I used ?



$catIds = array(4);
$notCatIds = array(3, 10);
$productCollection = Mage::getResourceModel('catalog/product_collection')
->setStoreId(0)
->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id=entity_id', null, 'left')
->addAttributeToFilter('category_id', array('in' => $notCatIds))
->addAttributeToFilter('category_id', array('in' => $catIds))
->addAttributeToFilter('category_id', array('nin' => $notCatIds))
->addAttributeToFilter('category_id', array('nin' => array(2)))// 2 is default category id
->addAttributeToSelect('*');
$productCollection->getSelect()->group('product_id')->distinct(true);

echo '<pre>';
print_r($productCollection->getData());









share|improve this question
















I want to get product ids of a specific category and product ids not in other categories only in a specific category.



For example,



category ids = 3, 4, 10 and product ids = 10, 12, 14 and category id 3 belong to product id 10 and category id 4 belong to product ids 10, 12, 14 and category id 10 belong to product id 14.



When I filter on category id = 4, it returns product ids 10, 12 and 14, but I want to return only product id 12 because I only want the product id which is not in other categories. In my filter category id 4 returns product ids 10,12 and 14 but I only want to product id 4 because 10 and 14 belong to other categories which I don't want.
I only want to product id 12 in filter. Which filter I used ?



$catIds = array(4);
$notCatIds = array(3, 10);
$productCollection = Mage::getResourceModel('catalog/product_collection')
->setStoreId(0)
->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id=entity_id', null, 'left')
->addAttributeToFilter('category_id', array('in' => $notCatIds))
->addAttributeToFilter('category_id', array('in' => $catIds))
->addAttributeToFilter('category_id', array('nin' => $notCatIds))
->addAttributeToFilter('category_id', array('nin' => array(2)))// 2 is default category id
->addAttributeToSelect('*');
$productCollection->getSelect()->group('product_id')->distinct(true);

echo '<pre>';
print_r($productCollection->getData());






magento-1.8 product category






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Feb 15 '18 at 16:11









MGento

1,224319




1,224319










asked Feb 18 '15 at 17:15









johnjohn

164




164












  • Did you solve??

    – Gem
    Apr 23 '18 at 4:20


















  • Did you solve??

    – Gem
    Apr 23 '18 at 4:20

















Did you solve??

– Gem
Apr 23 '18 at 4:20






Did you solve??

– Gem
Apr 23 '18 at 4:20











2 Answers
2






active

oldest

votes


















1














Step1: all categories ids form Category and then



$categiesIDs= Mage::getResourceModel('catalog/category_collection')->getAllIds();


Step2: exclude your category[12] from $categiesIDs uset



Step3: Then Product collection filter by Categories ids.



$productCollection->getSelect()
->join(
array('at_category_id' => $productCollection->getTable('catalog/category_product')),
'at_category_id.product_id=e.entity_id',
array(
'at_category_id.category_id',
'cattotal'=> new Zend_Db_Expr('COUNT(*)')
)
->group('e.entity_id');





share|improve this answer

























  • 12 is product id not category id. what you say i dont understand ? please eleborate

    – john
    Feb 18 '15 at 18:23











  • 10,12 and 14 are product ids which belongs to category id (4) and category id (3) belongs to product id(10) and category id 10 belongs to product id(14).Now My issue is when i filter using category id(4), it returns 10,12,14 product ids but i only want to product id 12 because product id(12) is not belongs to other categories

    – john
    Feb 18 '15 at 18:29











  • just wait .. you want to this type of work.get product collection filter which have only category

    – Amit Bera
    Feb 18 '15 at 18:39











  • yes something like this. In sort not common product ids not in filter get back only. Example men and women are categories, product ids (10,12,14).men contains 10 and 14 product ids and women category contain 10,12,14 product ids. when i filter women category,i only want product id(12) because product id(12) not contain in men category.

    – john
    Feb 18 '15 at 18:45











  • i don't want to 10 and 14 product ids because it belongs to other(men) category in filter.

    – john
    Feb 18 '15 at 18:47


















0














The below query will give some insights to you.



From your scenario, one must say you need to list the products belongs to a single category. So below query will satisfy your requirements.



It's a bit of raw if you can rewrite Magento way better.



Note: The catlist field added to see what are all the categories attached to a product in a comma separated way.



$catIds = array(4);
$productCollection = Mage::getResourceModel('catalog/product_collection');
$productCollection->getSelect()
->join(
array('at_category_id' => $productCollection->getTable('catalog/category_product')),
'at_category_id.product_id=e.entity_id',
array(
'at_category_id.category_id',
'cattotal'=> new Zend_Db_Expr('(SELECT COUNT(product_id) FROM '.$productCollection->getTable('catalog/category_product').' WHERE product_id=e.entity_id AND category_id NOT IN ('.implode(",", $catIds).'))'),
'catlist'=> new Zend_Db_Expr('GROUP_CONCAT(at_category_id.category_id)')
))
->where("at_category_id.category_id IN (".implode(",",$catIds).")")
->having("cattotal=1")
->group('e.entity_id');


Adapting some elements from Amit Bera's answer.






share|improve this answer























    Your Answer








    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "479"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f57717%2fhow-to-get-product-ids-of-specific-category-and-not-in-other-categories-in-magen%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    Step1: all categories ids form Category and then



    $categiesIDs= Mage::getResourceModel('catalog/category_collection')->getAllIds();


    Step2: exclude your category[12] from $categiesIDs uset



    Step3: Then Product collection filter by Categories ids.



    $productCollection->getSelect()
    ->join(
    array('at_category_id' => $productCollection->getTable('catalog/category_product')),
    'at_category_id.product_id=e.entity_id',
    array(
    'at_category_id.category_id',
    'cattotal'=> new Zend_Db_Expr('COUNT(*)')
    )
    ->group('e.entity_id');





    share|improve this answer

























    • 12 is product id not category id. what you say i dont understand ? please eleborate

      – john
      Feb 18 '15 at 18:23











    • 10,12 and 14 are product ids which belongs to category id (4) and category id (3) belongs to product id(10) and category id 10 belongs to product id(14).Now My issue is when i filter using category id(4), it returns 10,12,14 product ids but i only want to product id 12 because product id(12) is not belongs to other categories

      – john
      Feb 18 '15 at 18:29











    • just wait .. you want to this type of work.get product collection filter which have only category

      – Amit Bera
      Feb 18 '15 at 18:39











    • yes something like this. In sort not common product ids not in filter get back only. Example men and women are categories, product ids (10,12,14).men contains 10 and 14 product ids and women category contain 10,12,14 product ids. when i filter women category,i only want product id(12) because product id(12) not contain in men category.

      – john
      Feb 18 '15 at 18:45











    • i don't want to 10 and 14 product ids because it belongs to other(men) category in filter.

      – john
      Feb 18 '15 at 18:47















    1














    Step1: all categories ids form Category and then



    $categiesIDs= Mage::getResourceModel('catalog/category_collection')->getAllIds();


    Step2: exclude your category[12] from $categiesIDs uset



    Step3: Then Product collection filter by Categories ids.



    $productCollection->getSelect()
    ->join(
    array('at_category_id' => $productCollection->getTable('catalog/category_product')),
    'at_category_id.product_id=e.entity_id',
    array(
    'at_category_id.category_id',
    'cattotal'=> new Zend_Db_Expr('COUNT(*)')
    )
    ->group('e.entity_id');





    share|improve this answer

























    • 12 is product id not category id. what you say i dont understand ? please eleborate

      – john
      Feb 18 '15 at 18:23











    • 10,12 and 14 are product ids which belongs to category id (4) and category id (3) belongs to product id(10) and category id 10 belongs to product id(14).Now My issue is when i filter using category id(4), it returns 10,12,14 product ids but i only want to product id 12 because product id(12) is not belongs to other categories

      – john
      Feb 18 '15 at 18:29











    • just wait .. you want to this type of work.get product collection filter which have only category

      – Amit Bera
      Feb 18 '15 at 18:39











    • yes something like this. In sort not common product ids not in filter get back only. Example men and women are categories, product ids (10,12,14).men contains 10 and 14 product ids and women category contain 10,12,14 product ids. when i filter women category,i only want product id(12) because product id(12) not contain in men category.

      – john
      Feb 18 '15 at 18:45











    • i don't want to 10 and 14 product ids because it belongs to other(men) category in filter.

      – john
      Feb 18 '15 at 18:47













    1












    1








    1







    Step1: all categories ids form Category and then



    $categiesIDs= Mage::getResourceModel('catalog/category_collection')->getAllIds();


    Step2: exclude your category[12] from $categiesIDs uset



    Step3: Then Product collection filter by Categories ids.



    $productCollection->getSelect()
    ->join(
    array('at_category_id' => $productCollection->getTable('catalog/category_product')),
    'at_category_id.product_id=e.entity_id',
    array(
    'at_category_id.category_id',
    'cattotal'=> new Zend_Db_Expr('COUNT(*)')
    )
    ->group('e.entity_id');





    share|improve this answer















    Step1: all categories ids form Category and then



    $categiesIDs= Mage::getResourceModel('catalog/category_collection')->getAllIds();


    Step2: exclude your category[12] from $categiesIDs uset



    Step3: Then Product collection filter by Categories ids.



    $productCollection->getSelect()
    ->join(
    array('at_category_id' => $productCollection->getTable('catalog/category_product')),
    'at_category_id.product_id=e.entity_id',
    array(
    'at_category_id.category_id',
    'cattotal'=> new Zend_Db_Expr('COUNT(*)')
    )
    ->group('e.entity_id');






    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Jul 20 '17 at 9:22









    sv3n

    9,98762557




    9,98762557










    answered Feb 18 '15 at 18:03









    Amit BeraAmit Bera

    60.1k1677178




    60.1k1677178












    • 12 is product id not category id. what you say i dont understand ? please eleborate

      – john
      Feb 18 '15 at 18:23











    • 10,12 and 14 are product ids which belongs to category id (4) and category id (3) belongs to product id(10) and category id 10 belongs to product id(14).Now My issue is when i filter using category id(4), it returns 10,12,14 product ids but i only want to product id 12 because product id(12) is not belongs to other categories

      – john
      Feb 18 '15 at 18:29











    • just wait .. you want to this type of work.get product collection filter which have only category

      – Amit Bera
      Feb 18 '15 at 18:39











    • yes something like this. In sort not common product ids not in filter get back only. Example men and women are categories, product ids (10,12,14).men contains 10 and 14 product ids and women category contain 10,12,14 product ids. when i filter women category,i only want product id(12) because product id(12) not contain in men category.

      – john
      Feb 18 '15 at 18:45











    • i don't want to 10 and 14 product ids because it belongs to other(men) category in filter.

      – john
      Feb 18 '15 at 18:47

















    • 12 is product id not category id. what you say i dont understand ? please eleborate

      – john
      Feb 18 '15 at 18:23











    • 10,12 and 14 are product ids which belongs to category id (4) and category id (3) belongs to product id(10) and category id 10 belongs to product id(14).Now My issue is when i filter using category id(4), it returns 10,12,14 product ids but i only want to product id 12 because product id(12) is not belongs to other categories

      – john
      Feb 18 '15 at 18:29











    • just wait .. you want to this type of work.get product collection filter which have only category

      – Amit Bera
      Feb 18 '15 at 18:39











    • yes something like this. In sort not common product ids not in filter get back only. Example men and women are categories, product ids (10,12,14).men contains 10 and 14 product ids and women category contain 10,12,14 product ids. when i filter women category,i only want product id(12) because product id(12) not contain in men category.

      – john
      Feb 18 '15 at 18:45











    • i don't want to 10 and 14 product ids because it belongs to other(men) category in filter.

      – john
      Feb 18 '15 at 18:47
















    12 is product id not category id. what you say i dont understand ? please eleborate

    – john
    Feb 18 '15 at 18:23





    12 is product id not category id. what you say i dont understand ? please eleborate

    – john
    Feb 18 '15 at 18:23













    10,12 and 14 are product ids which belongs to category id (4) and category id (3) belongs to product id(10) and category id 10 belongs to product id(14).Now My issue is when i filter using category id(4), it returns 10,12,14 product ids but i only want to product id 12 because product id(12) is not belongs to other categories

    – john
    Feb 18 '15 at 18:29





    10,12 and 14 are product ids which belongs to category id (4) and category id (3) belongs to product id(10) and category id 10 belongs to product id(14).Now My issue is when i filter using category id(4), it returns 10,12,14 product ids but i only want to product id 12 because product id(12) is not belongs to other categories

    – john
    Feb 18 '15 at 18:29













    just wait .. you want to this type of work.get product collection filter which have only category

    – Amit Bera
    Feb 18 '15 at 18:39





    just wait .. you want to this type of work.get product collection filter which have only category

    – Amit Bera
    Feb 18 '15 at 18:39













    yes something like this. In sort not common product ids not in filter get back only. Example men and women are categories, product ids (10,12,14).men contains 10 and 14 product ids and women category contain 10,12,14 product ids. when i filter women category,i only want product id(12) because product id(12) not contain in men category.

    – john
    Feb 18 '15 at 18:45





    yes something like this. In sort not common product ids not in filter get back only. Example men and women are categories, product ids (10,12,14).men contains 10 and 14 product ids and women category contain 10,12,14 product ids. when i filter women category,i only want product id(12) because product id(12) not contain in men category.

    – john
    Feb 18 '15 at 18:45













    i don't want to 10 and 14 product ids because it belongs to other(men) category in filter.

    – john
    Feb 18 '15 at 18:47





    i don't want to 10 and 14 product ids because it belongs to other(men) category in filter.

    – john
    Feb 18 '15 at 18:47













    0














    The below query will give some insights to you.



    From your scenario, one must say you need to list the products belongs to a single category. So below query will satisfy your requirements.



    It's a bit of raw if you can rewrite Magento way better.



    Note: The catlist field added to see what are all the categories attached to a product in a comma separated way.



    $catIds = array(4);
    $productCollection = Mage::getResourceModel('catalog/product_collection');
    $productCollection->getSelect()
    ->join(
    array('at_category_id' => $productCollection->getTable('catalog/category_product')),
    'at_category_id.product_id=e.entity_id',
    array(
    'at_category_id.category_id',
    'cattotal'=> new Zend_Db_Expr('(SELECT COUNT(product_id) FROM '.$productCollection->getTable('catalog/category_product').' WHERE product_id=e.entity_id AND category_id NOT IN ('.implode(",", $catIds).'))'),
    'catlist'=> new Zend_Db_Expr('GROUP_CONCAT(at_category_id.category_id)')
    ))
    ->where("at_category_id.category_id IN (".implode(",",$catIds).")")
    ->having("cattotal=1")
    ->group('e.entity_id');


    Adapting some elements from Amit Bera's answer.






    share|improve this answer



























      0














      The below query will give some insights to you.



      From your scenario, one must say you need to list the products belongs to a single category. So below query will satisfy your requirements.



      It's a bit of raw if you can rewrite Magento way better.



      Note: The catlist field added to see what are all the categories attached to a product in a comma separated way.



      $catIds = array(4);
      $productCollection = Mage::getResourceModel('catalog/product_collection');
      $productCollection->getSelect()
      ->join(
      array('at_category_id' => $productCollection->getTable('catalog/category_product')),
      'at_category_id.product_id=e.entity_id',
      array(
      'at_category_id.category_id',
      'cattotal'=> new Zend_Db_Expr('(SELECT COUNT(product_id) FROM '.$productCollection->getTable('catalog/category_product').' WHERE product_id=e.entity_id AND category_id NOT IN ('.implode(",", $catIds).'))'),
      'catlist'=> new Zend_Db_Expr('GROUP_CONCAT(at_category_id.category_id)')
      ))
      ->where("at_category_id.category_id IN (".implode(",",$catIds).")")
      ->having("cattotal=1")
      ->group('e.entity_id');


      Adapting some elements from Amit Bera's answer.






      share|improve this answer

























        0












        0








        0







        The below query will give some insights to you.



        From your scenario, one must say you need to list the products belongs to a single category. So below query will satisfy your requirements.



        It's a bit of raw if you can rewrite Magento way better.



        Note: The catlist field added to see what are all the categories attached to a product in a comma separated way.



        $catIds = array(4);
        $productCollection = Mage::getResourceModel('catalog/product_collection');
        $productCollection->getSelect()
        ->join(
        array('at_category_id' => $productCollection->getTable('catalog/category_product')),
        'at_category_id.product_id=e.entity_id',
        array(
        'at_category_id.category_id',
        'cattotal'=> new Zend_Db_Expr('(SELECT COUNT(product_id) FROM '.$productCollection->getTable('catalog/category_product').' WHERE product_id=e.entity_id AND category_id NOT IN ('.implode(",", $catIds).'))'),
        'catlist'=> new Zend_Db_Expr('GROUP_CONCAT(at_category_id.category_id)')
        ))
        ->where("at_category_id.category_id IN (".implode(",",$catIds).")")
        ->having("cattotal=1")
        ->group('e.entity_id');


        Adapting some elements from Amit Bera's answer.






        share|improve this answer













        The below query will give some insights to you.



        From your scenario, one must say you need to list the products belongs to a single category. So below query will satisfy your requirements.



        It's a bit of raw if you can rewrite Magento way better.



        Note: The catlist field added to see what are all the categories attached to a product in a comma separated way.



        $catIds = array(4);
        $productCollection = Mage::getResourceModel('catalog/product_collection');
        $productCollection->getSelect()
        ->join(
        array('at_category_id' => $productCollection->getTable('catalog/category_product')),
        'at_category_id.product_id=e.entity_id',
        array(
        'at_category_id.category_id',
        'cattotal'=> new Zend_Db_Expr('(SELECT COUNT(product_id) FROM '.$productCollection->getTable('catalog/category_product').' WHERE product_id=e.entity_id AND category_id NOT IN ('.implode(",", $catIds).'))'),
        'catlist'=> new Zend_Db_Expr('GROUP_CONCAT(at_category_id.category_id)')
        ))
        ->where("at_category_id.category_id IN (".implode(",",$catIds).")")
        ->having("cattotal=1")
        ->group('e.entity_id');


        Adapting some elements from Amit Bera's answer.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered yesterday









        Rinto GeorgeRinto George

        195213




        195213



























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Magento Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f57717%2fhow-to-get-product-ids-of-specific-category-and-not-in-other-categories-in-magen%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown