Вопрос по доп свойствам

Модератор
#
Re: Вопрос по доп свойствам
Давайте думать головой:
1. Условия два, а count почему-то 1?
2. Я давал ссылку, условия фильтрации по св-вам должно идти через OR!
3. Кода даете одно и то же св-во и разные значения, то значения оборачиваете в скобки и ставите их через OR!
Переделайте код и покажите.
#
Re: Вопрос по доп свойствам
$Informationsystem_Controller_Show
         ->informationsystemItems()
         
         ->queryBuilder()
         ->leftJoin('informationsystem_item_properties', 'informationsystem_items.informationsystem_id', '=', 'informationsystem_item_properties.informationsystem_id')
         ->leftJoin('property_value_ints', 'informationsystem_items.id', '=', 'property_value_ints.entity_id',
            array(
               array('AND' => array('informationsystem_item_properties.property_id', '=', Core_QueryBuilder::expression('`property_value_ints`.`property_id`')))
            )
         )
         // Свойство 1
         
         ->where('informationsystem_item_properties.property_id', '=', 73)
         // Значание дополнительного свойства
         ->where('property_value_ints.value', '=', 1)
         ->setOr()
         // Идентификатор дополнительного свойства
         ->where('informationsystem_item_properties.property_id', '=', 76)
         // Значание дополнительного свойства
         ->where('property_value_ints.value', 'BETWEEN', array(850000, 950000))
          ->groupBy('informationsystem_items.id')
          ->having('COUNT(informationsystem_item_properties.informationsystem_id)', '=', 2);
Roman_che
#
Re: Вопрос по доп свойствам
Вроде заработало! но не пойму - почему
->where('informationsystem_item_properties.property_id', '=', 73)
         // Значание дополнительного свойства
         ->where('property_value_ints.value', '=', 1)
         ->setOr()
         // Идентификатор дополнительного свойства
         ->where('informationsystem_item_properties.property_id', '=', 76)
         // Значание дополнительного свойства
         ->where('property_value_ints.value', 'BETWEEN', array(850000, 950000))
          ->groupBy('informationsystem_items.id')
          ->having('COUNT(informationsystem_item_properties.informationsystem_id)', '=', 2);

это что все так свойства добавлять через ->setOr()?
Roman_che
Модератор
#
Re: Вопрос по доп свойствам
да, добавлять через OR, иначе не может быть поле равно 76 и 73 одновременно. А логическое "И" для значений св-в достигается через HAVING COUNT()
#
Re: Вопрос по доп свойствам
Спасибо! Осознал сию Фишку!)
Roman_che
Модератор
#
Re: Вопрос по доп свойствам
Пожалуйста.
#
Re: Вопрос по доп свойствам
HostCMS,
Мне уже стыдно спрашивать, но все же
Как включить еще и выборку по доп.свойству типа ИС?
Roman_che
Модератор
#
Re: Вопрос по доп свойствам
Romano_che,
так ID элемента также хранится в таблице int-ов, фильтруете точно так же, в значение идет ID ИЭ
Авторизация