MySQL JOIN ARRAY


MySQL JOIN ARRAY

如何将一些表联接为数组。

餐桌上的"水果"是首要的餐桌。

表"ordered"的"fruit_id"字段取自表"fruits"id。

表:水果

------------------------------------------------------+
id          fruits          date_created
------------------------------------------------------+
1           Apple           2016-03-31 14:29:29
2           Blueberry       2016-03-30 14:22:54
3           Coconut         2016-03-30 14:19:12
------------------------------------------------------+

表:订购

------------------------------------------------------------------------------------------------+
id          fruit_id            package_id      price_with_ship         price_without_ship
------------------------------------------------------------------------------------------------+
1           3                   10              150                     0   
2           3                   11              0                       110
3           2                   10              0                       87
4           2                   11              0                       95
5           2                   12              100                     0
6           1                   12              75                      0
------------------------------------------------------------------------------------------------+

这是我建议的结果。

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Apple
            [date_created] => 2016-03-31 14:29:29
            [package_id] => Array
                                    (
                                        [0] => 10
                                        [1] => 11
                                    )
            [price_with_ship] => Array
                                    (
                                        [0] => 150
                                        [1] => 0
                                    )
            [price_with_ship] => Array
                                    (
                                        [0] => 0
                                        [1] => 110
                                    )
        )
    [1] => Array
        (
            [id] => 1
            [name] => Blueberry
            [date_created] => 2016-03-30 14:22:54
            [package_id] => Array
                                    (
                                        [0] => 10
                                        [1] => 11
                                        [2] => 12
                                    )
            [price_with_ship] => Array
                                    (
                                        [0] => 0
                                        [1] => 0
                                        [2] => 100
                                    )
            [price_with_ship] => Array
                                    (
                                        [0] => 87
                                        [1] => 95
                                        [2] => 0
                                    )
        )
    [1] => Array
        (
            [id] => 1
            [name] => Coconut
            [date_created] => 2016-03-30 14:19:12
            [package_id] => 12
            [price_with_ship] => 75
            [price_with_ship] => 0
        )

提前感谢您的帮助。

您可以按照以下方式加入-

select f.*, o.* 
from fruit as f
join order as o on o.fruit_id=f.id
where f.id=1;

您需要两个查询

  1. 获取id, name, date_created:

    Select o.id, f.name, f.date_created From ordered o left join fruits f ON o.fruit_id = f.id

  2. 为每条记录选择详细信息:

    Select package_id, price_with_ship, price_without_ship From ordered Where id = ? -- replace with id from the loop