我正在执行将两个表连接在一起的简单查询.我得到的是这样的东西.
array(
[0] => array(
'id' => 52
'name' => 'charles',
'sale_id' => 921,
'sale_time' => 1306393996,
'sale_price' => 54.21
),
[1] => array(
'id' => 52
'name' => 'charles',
'sale_id' => 922,
'sale_time' => 1306395000,
'sale_price' => 32.41
),
...
);
…这是预期的结果.但是,我希望查询返回如下内容:
array(
[0] => array(
'id' => 52,
'name' => 'charles',
'sales' => array(
[0] => array(
'sale_id' => 921,
'sale_time' => 1306393996,
'sale_price' => 54.21
),
[1] => array(
'sale_id' => 922,
'sale_time' => 1306395000,
'sale_price' => 32.41
),
...
)
)
)
现在我意识到我可以简单地执行两个查询,一个查询用户信息,另一个查询销售,然后使用我使用的任何语言(在本例中为PHP)将这些数组合并在一起.但是我有很多属性,查询和合并这些属性对我来说似乎非常笨拙(尽管它确实有效).在我看来,有一种方法可以处理单个统一对象而无需复制数据.
只是想知道是否存在不费吹灰之力的查询,或者仅通过MySQL很难做到这一点.
解决方法:
我会说仅靠MySQL是不可能的-您必须在应用程序级别上做一些技巧.也就是说,因为即使您发送一个查询,即可将所有数据从MySQL带到应用程序(PHP),但它们将作为非规范化数据数组出现-您的第一种情况.
如果要在第二种情况下获取数据,我建议使用一些ORM-在Ruby中有ActiveRecord,在Perl中有Class :: DBi,DBIx :: Class等等-我不能为它命名PHP可以做到这一点,但是我敢肯定有很多.
标签:mysql
来源: https://codeday.me/bug/20191208/2090922.html