Каким образом можно сделать фильтр по двум полям двух разных таблиц где одно поле типа список(массив).
Например, сделал
И вот department.UF_DEP_STOCK это список, при гет листе возвращается массив ID складов. Так вот как написать верно фильтр чтобы я сузил кол-во возвращаемых записей при помощи этого условия, так как в выборке результирующей идет перемножение таблиц и это не то что мне нужно. Как ORM обяснить что я хочу именно находить соответсвие по полям.
Следующая конструкция не помогла, видимо не понимает что там список(массив) и не может обработать его
Например, сделал
Код |
---|
$select=[ '*', 'department.UF_DEP_TYPE', 'store.AMOUNT', 'store.STORE_ID', 'stock'=> 'department.UF_DEP_STOCK' ]; $filter = [ 'UF_ACTIVE' => true, 'department.UF_DEP_TYPE' => 6, '>store.AMOUNT' => 0, 'store.STORE_ID' => 'department.UF_DEP_STOCK' ]; $query = new \Bitrix\Main\Entity\Query($entity_data_class_notification); $query->registerRuntimeField('department', [ 'data_type' => $entity_data_class, 'reference' => ['=this.UF_SITE_ID' => 'ref.UF_DEP_SITE'], ])->registerRuntimeField('store', [ 'data_type' => '\Bitrix\Catalog\StoreProductTable', 'reference' => ['this.UF_GOOD_ID' => 'ref.PRODUCT_ID'], ])->setSelect($select)->setFilter($filter)->setOrder(['ID']); |
И вот department.UF_DEP_STOCK это список, при гет листе возвращается массив ID складов. Так вот как написать верно фильтр чтобы я сузил кол-во возвращаемых записей при помощи этого условия, так как в выборке результирующей идет перемножение таблиц и это не то что мне нужно. Как ORM обяснить что я хочу именно находить соответсвие по полям.
Следующая конструкция не помогла, видимо не понимает что там список(массив) и не может обработать его
Код |
---|
->whereColumn('store.STORE_ID','department.UF_DEP_STOCK') |