首页 > 解决方案 > 一次查询所有数组数据!结果是通过分隔数组的每个 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 查询的新手。如果您知道如何操作,请帮助我。

标签: mysqlcakephp

解决方案


我只是想知道 cakePHP 的一些Query 关键字,以使这种情况变得聪明,但看起来没有。所以只需循环所需数组的结果。


推荐阅读