MySQL JOIN ARRAY

时间:2016-03-31 09:47:45

标签: php mysql arrays

如何加入某些表,然后生成数组。

表“水果”是主要表格。

表“订购”的

“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
        )

先谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您需要2次查询

  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