MySQL:在列中返回一个数组

时间:2015-05-09 08:13:04

标签: mysql

很抱歉,如果我复制,我甚至不知道如何搜索。

我有agenciescars两个表格agency_id(每个代理商都有一个唯一的ID,它可以有多个车辆)。例如,agencies就像这样:

--------------------------
agency_id     agency_name
--------------------------
1             agency1
2             agency2

cars就像这样:

---------------------------------
car_id    agency_id      car_name
---------------------------------
1         1              car1
2         1              car2
3         2              car3

我希望MySQL查询返回结果:

result = array(
       0 => array(
           'agency_id' => 1
           'agency_name' => agency1
           'cars' => array(
                     0 => array(
                     'car_id' => 1
                     'car_name' => car1
                     )
                     1 => array(
                          'car_id' => 2
                          'car_name' => car2
                     )
             )
       )
       1 => array(
            'agency_id' => 2
            'agency_name' => agency2
            'cars' => array(
                      0 => array(
                           'car_id' => 3
                           'car_name' => car3
                      )
             )
       )

我试过了:

SELECT * FROM agencies JOIN (SELECT * FROM cars GROUP BY cars.`agency_id`) AS cars

和:

SELECT * FROM agencies JOIN cars ON agencies.`agency_id` = cars.`agency_id` AS cars

我无法让MySQL将汽车结果放入子阵列

我正在使用PHP-PDO,我知道我可以通过循环遍历每个表的结果来使用PHP的简单方法,但我更喜欢使用更快的方式只有一个MySQL语句(如果有的话)。

非常感谢。

修改

我发现了这个:Subquery returning more than 1 row

似乎不太可能做这样的事情。我也试过这个:

SELECT * FROM agencies JOIN cars ON agencies.agency_id = cars.agency_id

为每辆车提供单独的条目。

0 个答案:

没有答案