Мне нужно знать, как сделать, я делаю выбор подзапроса с моделями phalcon?
например, я хочу выбрать всех пользователей, которые просматривали меня, они хранятся в таблице UserView с идентификаторами столбцов «user», «user_from», «user_to» (сопоставлены пользовательской таблицей user_id либо user_from, либо user_to)
поэтому я хочу выбрать всех пользователей, у которых есть user_to, как и у текущего пользователя, и group by user_to make sure i only получить один записанный, я написал ниже функцию, чтобы сделать это, но есть фундаментальные две проблемы
1. Как выполнять подзапрос с использованием моделей phalcon
2. Является ли моя логика корректно применена на внутреннем интерфейсе БД (поскольку я не вижу реального выполненного запроса)
public function getUserWithViewedMe($limit=1000000){ return User::query() ->rightJoin("XYZ\Models\UsersView") ->andWhere(" XYZ\Models\UsersView.user_from IN :user_id: ", array('user_id' => $this->user->user_id) ) ->group('user_id') ->order("XYZ\Models\UsersView.id DESC ") ->limit($limit) ->execute(); }
Это возвращает пустой набор …
Пока не удается смоделировать подзапросы в Phalcon. Существует также тема в соответствии со стандартными вопросами реализации.
Чтобы запросить параметры в соответствии с другой таблицей, вот ответ .
Чтобы запросить IN
вы можете использовать queryBuilder
$this->modelsManager->createBuilder() // ... ->inWhere('column', $array);