Всем привет.
Что-то не получается у меня сделать немного не стандартный запрос через ORM. прошу помощи
Например, есть таблица заказов b_order (OrderTable)
B есть таблица логов, например, logs (LogTable)
В таблице logs может быть много записей по каждому заказу, а так же может не быть записей
Мне нужно получить список заказов с привязкой к последней записи таблицы logs (если такая имеется)
$query = OrderTable::query()
->registerRuntimeField('LOG', array(
'data_type'=> LogTable::class,
'reference' => [
'=this.ID' => 'ref.ORDER_ID',
]
))
;
В таком виде мы получим все записи связанной таблицы для имеющихся заказов
Для случаем, когда мы знаем, что для каждого заказа есть запись в логе, можно сделать так:
->registerRuntimeField('LAST_LOG_ENTITY', [
'data_type'=>'integer',
'expression' => ['MAX(%s)', 'LOG.ID']
])
->where('LAST_LOG_ENTITY', '!=', false)
В таком случае отсеятся все заказы для которых нет записи в логах
Я перепробовал различные комбинации запроса, писать все варианты - не вижу смысла, поэтому описал базовый вариант.
Очень прошу помощи!