このクエリの場合:-
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 ;
クエリは Cake php 規則で作成されたので、cake 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
);
これについて私を助けてください。他のすべてのネストされたクエリに Cake php ページネーションを使用すると役立ちます。