HostCMS писал(а):
Сделал вот такой запрос:
$oInformationsystem = Core_Entity::factory('Informationsystem', 22);
$aInformationsystem_Items = $oInformationsystem ->Informationsystem_Items -> queryBuilder() ->
leftJoin('informationsystem_item_properties', 'informationsystem_items.informationsystem_id', '=', 'informationsystem_item_properties.informationsystem_id')
->leftJoin('property_value_strings', 'informationsystem_items.id', '=', 'property_value_strings.entity_id',
array(
array('AND' => array('informationsystem_item_properties.property_id', '=', Core_QueryBuilder::expression('`property_value_strings`.`property_id`')))
)
)
// Идентификатор дополнительного свойства
->where('informationsystem_item_properties.property_id', '=', 12)
// Значение дополнительного свойства
->where('property_value_strings.value', '=', '111')
->groupBy('informationsystem_items.id') -> execute();
при выполнении получил вот такую ошибку
Exception: Query error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT OUTER JOIN `informationsystem_item_properties` ON `informationsystem_items`' at line 3. Query: SELECT * LEFT OUTER JOIN `informationsystem_item_properties` ON `informationsystem_items`.`informationsystem_id` = `informationsystem_item_properties`.`informationsystem_id` LEFT OUTER JOIN `property_value_strings` ON `informationsystem_items`.`id` = `property_value_strings`.`entity_id` AND `informationsystem_item_properties`.`property_id` = `property_value_strings`.`property_id` WHERE `informationsystem_items`.`informationsystem_id` = '22' AND `informationsystem_item_properties`.`property_id` = 12 AND `property_value_strings`.`value` = '111' GROUP BY `informationsystem_items`.`id`
36 modules/core/exception.php
655 modules/core/database/mysql.php
61 modules/core/querybuilder/statement.php
50 hostcmsfiles/lib/lib_49/lib_config_49.php
63 hostcmsfiles/lib/lib_49/lib_config_49.php
421 modules/core/command/controller/default.php
109 modules/core/command/controller/hostcms5/default.php
191 modules/core/router/route.php
239 index.php
У запроса не хватает части
from informationsystem_items я это добавил запрос и ручками его выполнил. Данные вернулись.
Потом попробовал добавить в orm запрос метод
from('informationsystem_items')
Ничего не падает, но и данные никакие не возвращаются.
Запрос получился вот такой:
$aInformationsystem_Items = $oInformationsystem ->Informationsystem_Items -> queryBuilder() -> from('informationsystem_items') ->
leftJoin('informationsystem_item_properties', 'informationsystem_items.informationsystem_id', '=', 'informationsystem_item_properties.informationsystem_id')
->leftJoin('property_value_strings', 'informationsystem_items.id', '=', 'property_value_strings.entity_id',
array(
array('AND' => array('informationsystem_item_properties.property_id', '=', Core_QueryBuilder::expression('`property_value_strings`.`property_id`')))
)
)
// Идентификатор дополнительного свойства
->where('informationsystem_item_properties.property_id', '=', 12)
// Значение дополнительного свойства
->where('property_value_strings.value', '=', '111')
->groupBy('informationsystem_items.id') -> execute();
Может я что-то не так делаю? Подскажите пожалуйста.