我正在搜索每个事务处理ID的所有名称。例如,ID 1包含用户A、B。ID 2包含用户A。ID 3包含用户A、C。
我可以像这样获得属于每个ID的用户名
foreach ($Ids in $id){
$query = [
'fields' => [
'USER.name'
],
'joins' => [
[
'type' => 'LEFT',
'table' => 'users',
'alias' => 'USER',
'conditions' => [
'TransactionUser.user_id=USER.id'
]
]
],
'conditions' => [
'TransactionUser.transaction_id' => $id
]
];
$this->find('all', $query);
}
但问题是我的领导不想循环查询,只想用一个查询。所以我这样尝试。
$query = [
'fields' => [
'USER.name',
'TransactionUser.transaction_id'
],
'joins' => [
[
'type' => 'LEFT',
'table' => 'users',
'alias' => 'USER',
'conditions' => [
'TransactionUser.user_id=USER.id'
]
]
],
'conditions' => [
'TransactionUser.transaction_id' => $Ids
]
];
$this->find('all', $query);
这是在cakePHP中完成的,结果是这样的。
Array
(
[0] => Array
( ([name] => A), ([transaction_id] => 1))
[1] => Array
( ([name] => B), ([transaction_id] => 1))
[2] => Array
( ([name] => A), ([transaction_id] => 2))
[3] => Array
( ([name] => A), ([transaction_id] => 3))
[4] => Array
( ([name] => C), ([transaction_id] => 3))
)
但我想要这样的数据。
Array
(
[0] => Array
( ([name] => A, B), ([transaction_id] => 1))
[1] => Array
( ([name] => A), ([transaction_id] => 2))
[2] => Array
( ([name] => A, C), ([transaction_id] => 3))
)
我试着在查询中使用'group',但是效果不好。我是cakePHP查询新手。如果你知道如何使用,请帮助我。
1条答案
按热度按时间dwbf0jvd1#
我只是想知道一些查询关键字的cakePHP的这种情况下是聪明的,但它看起来像没有。所以只是循环结果所需的数组。