Добрый день, пытаюсь убрать из каталога товары, у которых отмечено свойство 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);