Есть нужда получить примерно такой запрос:
И попытки сделать это через 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`
Какой подход можно применить в этом случае?