Для этого запроса: —
SELECT `user_name`
FROM `users`
where `department` = (SELECT `department` FROM `users` WHERE `user_id` = 'xyz')
Я смог сделать это из buildstatement
Например:
$subQuery = $db->buildStatement(
array(
'fields' => array('Users.department'),
'table' => $db->fullTableName($this->Users),
'alias' => 'Users',
'limit' => null,
'offset' => null,
'joins' => array(),
'conditions' => $conditionsSubQuery,
'order' => null,
'group' => null
),
$this->Users
);
$subQuery = 'Users.department = (' . $subQuery . ') ';
$subQueryExpression = $db->expression($subQuery);
$conditions[] = $subQueryExpression;
$this->Paginator->settings = $conditions ;
Так как запрос был построен с использованием соглашения об использовании торта php, я смог напрямую использовать нумерацию торта php.
Сейчас я пытаюсь построить ниже запрос, но я не получаю, что
SELECT count(Users.department) FROM (SELECT `department` FROM `users`) AS `Users` WHERE 1 = 1
Я пытался таким образом
$subQuery = $db->buildStatement(
array(
'fields' => array('count(Users.department)'),
'table' => "(SELECT `department` FROM `users`)",
'alias' => 'Users',
'limit' => null,
'offset' => null,
'joins' => array(),
/* 'conditions' => $conditionsSubQuery,*/
'order' => null,
'group' => null
),
$this->Users
);
Пожалуйста помоги мне с этим.
Это поможет мне использовать торт php-нумерацию для всех других вложенных запросов.
Задача ещё не решена.
Других решений пока нет …