MySQL查询 - 获取正确的格式

时间:2012-03-25 22:11:27

标签: php mysql

我无法从我的mysql查询中获得格式良好的结果。

以下是数据库:

customers table 
id  name
1   Tim
2   Lauren
3   Prada

tanks table
id  c_id    location
1   1   Living Room
2   2   Living Room
3   2   Kitchen
4   3   Bedroom
5   3   Hallway

fish table
id  t_id    color
1   1   red
2   1   blue
3   2   white
4   2   green
5   2   black
6   3   red
7   3   orange
8   4   white
9   4   blue
10  5   black

以下是我的问题:

SELECT * FROM customers
LEFT JOIN tanks ON (tanks.c_id = customers.id)
LEFT JOIN fish ON (fish.t_id = tanks.id)
GROUP BY customers.id, tanks.id;

以下是我得到的结果:

id  name    id  c_id    location    id  t_id    color
1   Tim 1   1   Living Room 1   1   red
2   Lauren  2   2   Living Room 3   2   white
2   Lauren  3   2   Kitchen 6   3   red
3   Prada   4   3   Bedroom 8   4   white
3   Prada   5   3   Hallway 10  5   black

以下是我想要的格式:

  [0] => Array
    (
      [customers] => Array
        (
          [0] => Array
            (
              [id] => 2
              [title] => Lauren
              [tanks] => Array
                (
                  [0] => Array
                    (
                      [id] => 2
                      [location] => Living Room
                      [fish] => Array
                        (
                          [0] => Array
                            (
                              [id] => 3
                              [color] => white
                            )
                          [1] => Array
                            (
                              [id] => 4
                              [color] => green
                            )
                          [2] => Array
                            (
                              [id] => 5
                              [color] => black
                            )
                        )
                      )
                    [1] => Array
                      (
                        [id] => 3
                        [location] => Kitchen
                        [fish] => Array
                          (
                            [0] => Array
                              (
                                [id] => 6
                                [color] => red
                              )
                            [1] => Array
                              (
                                [id] => 7
                                [color] => orange
                              )
                          )
                      )
                )
            )
        )
    )

我可以从一个查询中获得所需的结果,还是需要进行多个查询然后在PHP中将它们连接在一起?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

您无法直接从mysql获取此输出,因为它始终返回基于行的输出。获得结果后,您可以使用桥接方法将行类型数组转换为所需的数组。