Ограничение по доп.свойству при фильтрации

#
Ограничение по доп.свойству при фильтрации
Добрый день, пытаюсь убрать из каталога товары, у которых отмечено свойство 379 тип Флажок
Написал выборку, все прекрасно работает, но при использовании фильтра получаю ошибку

    Только что на сайте произошло событие, информация о котором представлена ниже:
    Дата: 2025-04-01 19:07:20
    Событие: Query error 42000: SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'shop_item_properties'. Query: SELECT
    `shop_items`.`id`, `shop_items`.`shop_group_id`, `shop_items`.`modification_id`, `shop_items`.`shop_producer_id`, `shop_items`.`shop_seller_id`, `shop_items`.`weight`, `shop_items`.`length`, `shop_items`.`width`, `shop_items`.`height`, (`shop_items`.`price` * `shop_currencies`.`exchange_rate`) - IF(`shop_discounts`.`id` IS NOT NULL, IF(`shop_discounts`.`type` = 0, (`shop_items`.`price` * `shop_currencies`.`exchange_rate` * `shop_discounts`.`value` / 100), `shop_discounts`.`value`), 0) + IF(`shop_taxes`.`id` IS NOT NULL AND `shop_taxes`.`tax_is_included` = 0, (`shop_taxes`.`rate` / 100 * (`shop_items`.`price` * `shop_currencies`.`exchange_rate`)), 0) AS `absolute_price`
    FROM `shop_items`


Понимаю  что не нужно объединять таблицу shop_item_properties второй раз, так как при фильтрации она уже используется,
Но не понятно как верно написать условие отбора по свойству при использовании фильтра.

   $Shop_Controller_Show
      ->shopItemsInit()
      ->queryBuilder()
      ->leftJoin('shop_item_properties', 'shop_items.shop_id', '=', 'shop_item_properties.shop_id')
    ->leftJoin('property_value_ints', 'shop_items.id', '=', 'property_value_ints.entity_id',
        array(
            array('AND' => array('shop_item_properties.property_id', '=', Core_QueryBuilder::expression('`property_value_ints`.`property_id`')))
        )
    )
    // Идентификатор дополнительного свойства
    ->where('shop_item_properties.property_id', '=', 379)
      ->open()
         ->where('property_value_ints.value', 'IS', NULL)
         ->setOr()
         ->where('property_value_ints.value', '!=', 1)
      ->close()
    ->where('shop_items.shop_group_id','NOT IN', $aChildrenOpt)
  ->where('shop_items.shop_group_id','NOT IN', $aChildrenTeh);
Модератор
#
Re: Ограничение по доп.свойству при фильтрации
Вы объединяете с таблицей, с которой также объединяет система. см. https://www.hostcms.ru/documentation/modules/core/querybuilder/
При использовании объединений, для таблицы также может быть использован псевдоним
$Core_QueryBuilder_Select->leftJoin(array('jointable', 'join1'), 'join_field', '=', 'join1.field2');
#
Re: Re: Ограничение по доп.свойству при фильтрации
Спасибо за помощь, мб кому то пригодится

$Shop_Controller_Show
      ->shopItemsInit()
      ->queryBuilder()
      ->leftJoin(array('shop_item_properties', 'shop_item_properties_copy'), 'shop_items.shop_id', '=', 'shop_item_properties_copy.shop_id')
    ->leftJoin(array('property_value_ints', 'property_value_ints_copy'), 'shop_items.id', '=', 'property_value_ints_copy.entity_id',
        array(
            array('AND' => array('shop_item_properties_copy.property_id', '=', Core_QueryBuilder::expression('`property_value_ints_copy`.`property_id`')))
        )
    )
    // Идентификатор дополнительного свойства
    ->where('shop_item_properties_copy.property_id', '=', 379)
      ->open()
         ->where('property_value_ints_copy.value', 'IS', NULL)
         ->setOr()
         ->where('property_value_ints_copy.value', '!=', 1)
      ->close()
    ->where('shop_items.shop_group_id','NOT IN', $aChildrenOpt)
  ->where('shop_items.shop_group_id','NOT IN', $aChildrenTeh);
Авторизация