Вывести только те производители в которых есть товары в магазине и нужно только название и индификатор

#
Вывести только те производители в которых есть товары в магазине и нужно только название и индификатор
В магазине около 1000 производителей с них в товарах присутствует 1/3. Как отсечь не нужных производителей и нужно только название и ИД



      $oShop = $Shop_Controller_Show->getEntity();
      // XML-сущность, к которй будут добавляться производители
      $oProducersXmlEntity = Core::factory('Core_Xml_Entity')->name('producers');

      // Добавляем XML-сущность контроллеру показа
      $Shop_Controller_Show->addEntity($oProducersXmlEntity);

      // Список производителей
      $oShop_Producers = $oShop->Shop_Producers;
      $oShop_Producers->queryBuilder()
         ->select('shop_producers.*')
         ->distinct()
         ->join('shop_items', 'shop_items.shop_producer_id', '=', 'shop_producers.id')   
         ->where('shop_items.deleted', '=', 0);

      $aShop_Producers = $oShop_Producers->findAll();
      foreach ($aShop_Producers as $oShop_Producer)
      {
         // Добавляем производителя потомком XML-сущности
         $oProducersXmlEntity->addEntity(
            $oShop_Producer->clearEntities()
         );
      }
Skype:ferdinant1988 ICQ:311960596 E-mail: ferdinant@i.ua
#
Re: Вывести только те производители в которых есть товары в магазине и нужно только название и индификатор
ferdinant,
Вывести только тех производителей которые участвуют в выбранной категории:
if (Core::moduleIsActive('shop'))
{
    $oShop = Core_Entity::factory('Shop', 5);
    // Список производителей
    $oShop_Producers = $oShop->Shop_Producers;
    $oShop_Producers->queryBuilder()
        ->select('shop_producers.*')
        ->distinct()
        ->join('shop_items', 'shop_items.shop_producer_id', '=', 'shop_producers.id')
        ->where('shop_items.shop_group_id', '=', 609) //<- ИД ктегории
        ->where('shop_items.deleted', '=', 0)
        ->where('shop_items.active', '=', 1);

    $aShop_Producers = $oShop_Producers->findAll();
    foreach ($aShop_Producers as $oShop_Producer)
    {
        echo $oShop_Producer->id ." - ". $oShop_Producer->name;
    }
}
  
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
#
Re: Вывести только те производители в которых есть товары в магазине и нужно только название и индификатор
Мне нужно по всему магазину!
Skype:ferdinant1988 ICQ:311960596 E-mail: ferdinant@i.ua
#
Re: Вывести только те производители в которых есть товары в магазине и нужно только название и индификатор
ferdinant,
SELECT
`shop_producers`.`id`, `shop_producers`.`name`
FROM `shop_producers`
WHERE
`shop_producers`.`shop_id` = '5' AND
`shop_producers`.`id` NOT IN (SELECT DISTINCT `shop_producer_id` FROM `shop_items` WHERE `shop_id` = '5' AND `shop_producer_id` > 0 )
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
#
Re: Вывести только те производители в которых есть товары в магазине и нужно только название и индификатор
Или санки не едут или не мой день у меня не получилось
Skype:ferdinant1988 ICQ:311960596 E-mail: ferdinant@i.ua
#
Re: Вывести только те производители в которых есть товары в магазине и нужно только название и индификатор
ferdinant писал(а):
не получилось

Почему? QueryBuilder
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
#
Re: Вывести только те производители в которых есть товары в магазине и нужно только название и индификатор
         ->select('shop_producers.id', 'shop_producers.name')-from('shop_producers')
Skype:ferdinant1988 ICQ:311960596 E-mail: ferdinant@i.ua
#
Re: Вывести только те производители в которых есть товары в магазине и нужно только название и индификатор
ferdinant,
if (Core::moduleIsActive('shop'))
{
   $oShop = Core_Entity::factory('Shop', 5);

    $oCore_QueryBuilder_Select2 = Core_QueryBuilder::select('shop_producer_id')
        ->distinct()
        ->from('shop_items')
        ->where('shop_items.shop_id', '=', $oShop->id)
        ->where('shop_items.active', '=', 1)
        ->where('shop_items.deleted', '=', 0)
        ->where('shop_items.shop_producer_id', '>', 0);

    // Список производителей
    $oShop_Producers = $oShop->Shop_Producers;
    $oShop_Producers->queryBuilder()
        ->select('shop_producers.*')
        ->where('shop_producers.shop_id', '=', $oShop->id)
        ->where('shop_producers.id', 'IN', $oCore_QueryBuilder_Select2)
        ->where('shop_producers.active', '=', 1)
        ->where('shop_producers.deleted', '=', 0);

    $aShop_Producers = $oShop_Producers->findAll();
    foreach ($aShop_Producers as $oShop_Producer)
    {
        // Добавляем производителя потомком XML-сущности
        echo $oShop_Producer->id ." - ". $oShop_Producer->name;
    }
}
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
Авторизация