Есть нужда получить примерно такой запрос:
И попытки сделать это через API:
Этот код "работает", если не считать, что в expression указано название таблицы из скрытой реализации - main_user_ug, чего быть не должно.
В двух закомментированных ниже строках - попытки завести запрос без вгрызания во внутреннюю логику. Ни одна из них не работает - в сгенерированном запросе получается или ug.GROUP_ID IS NOT NULL AS `opt_is_approved`, или this.ug.GROUP_ID IS NOT NULL AS `opt_is_approved`
Какой подход можно применить в этом случае?
| Код |
|---|
SEL ECT u.ID AS ID, (ug.GROUP_ID IS NOT NULL) AS opt_is_approved FR OM b_user u LEFT JOIN b_user_group ug ON (ug.USER_ID = u.ID AND ug.GROUP_ID = 8) |
И попытки сделать это через API:
| Код |
|---|
$usersQuery = UserTable::query()
->setSelect(['ID', 'opt_is_approved'])
->registerRuntimeField('ug', [
'data_type' => UserGroupTable::class,
'reference' => ['=ref.USER_ID' => 'this.ID', '=ref.GROUP_ID' => new SqlEx * pression('?', 8)],
'join_type' => "LEFT",
])
->registerRuntimeField('opt_is_approved', [
'data_type' => 'integer',
'expression' => ['main_user_ug.GROUP_ID IS NOT NULL'],
//'expression' => ['ug.GROUP_ID IS NOT NULL'],
//'expression' => ['this.ug.GROUP_ID IS NOT NULL'],
])
;
echo $usersQuery->getQuery(),"\n"; |
Этот код "работает", если не считать, что в expression указано название таблицы из скрытой реализации - main_user_ug, чего быть не должно.
В двух закомментированных ниже строках - попытки завести запрос без вгрызания во внутреннюю логику. Ни одна из них не работает - в сгенерированном запросе получается или ug.GROUP_ID IS NOT NULL AS `opt_is_approved`, или this.ug.GROUP_ID IS NOT NULL AS `opt_is_approved`
Какой подход можно применить в этом случае?