mysql - 一次查询所有数组数据!结果是通过分隔数组的每个 id
问题描述
我正在搜索每个交易 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))
)
我尝试在查询中使用“组”,但效果不佳。我是 cakePHP 查询的新手。如果您知道如何操作,请帮助我。
解决方案
我只是想知道 cakePHP 的一些Query 关键字,以使这种情况变得聪明,但看起来没有。所以只需循环所需数组的结果。
推荐阅读
- javascript - 如何在单页应用程序 (SPA) 中正确配置 Firebase 身份验证?
- java - 如何配置 jhipster 应用程序
- javascript - NuxtJS:如果 id 未定义或为空,则禁用链接
- python - NameError:名称“win”未使用 tkinter python 定义
- fastapi - 使用快速 api 读取 json:api 过滤器
- android - 同时循环两个列表,同时在每个步骤比较和存储每个循环的结果
- java - 了解迭代器
- python - AWS Lambda - 无法导入模块 lambda-function
- javascript - React.js:未捕获(承诺)SyntaxError:JSON输入意外结束
- c - 指针转换的奇怪结果