Верно. Почему у вас:
oCore_QueryBuilder_Select2 = Core_QueryBuilder::select('properties.id')
->from('properties')
->where('property_value_strings_value', '=', 'listIdStructure');
В середине другого ->queryBuilder()?
Как минимум так:
<?php
$Informationsystem_Controller_Show = new Informationsystem_Controller_Show(
Core_Entity::factory('Informationsystem',87)
);
$Informationsystem_Controller_Show
->xsl(
Core_Entity::factory('Xsl')->getByName('СписокЭлементовPUBL_second')
)
->groupsMode('tree')
->itemsForbiddenTags(array('text'))
->group(669, 671)
->limit(2)
->itemsProperties(TRUE)
->itemsPropertiesList(FALSE);
// Объединение с нужной таблицей свойств
$oCore_QueryBuilder_Select2 = Core_QueryBuilder::select('properties.id')
->from('properties')
->where('property_value_strings_value', '=', 'listIdStructure');
$Informationsystem_Controller_Show
->informationsystemItems()
->queryBuilder()
->leftJoin('property_value_strings', 'informationsystem_items.id', '=', 'property_value_strings.entity_id',
array(
array('AND' => array('properties.tag_name', '=', Core_QueryBuilder::expression('`property_value_strings`.`property_id`')))
)
)
// echo Core_DataBase::instance()->getLastQuery();
// Идентификатор дополнительного свойства
->where('properties.tag_name', '=', 594)
->where('property_value_strings.property_id', 'IN', $oCore_QueryBuilder_Select2)
// Количество свойств
->having(Core_Querybuilder::expression('COUNT(DISTINCT `informationsystem_item_properties`.`property_id`)'), '=', 1);
$Informationsystem_Controller_Show->show();