只是好奇,如果说我有sql在这个结构中返回数据
array(
0 => array(
'article.id' => '1001',
'article.title' => 'lorem ipsum',
'article.body' => 'dolor sit',
'user.id' => '2012',
'user.name' => 'foo',
'user.email' => 'foo@example.com'
),
1 => array(
'article.id' => '1001',
'article.title' => 'lorem ipsum',
'article.body' => 'dolor sit',
'user.id' => '2013',
'user.name' => 'bar',
'user.email' => 'bar@example.com'
)
);
正如您所看到的,两者实际上是指同一篇文章,但是由两个不同的用户共同编写,而不使用任何其他ORM / DB库和普通的PDO,您将如何将数据库返回的数据转换为以下形式:
array(
0 => array(
'article.id' => '1001',
'article.title' => 'lorem ipsum',
'article.body' => 'dolor sit',
'user' => array(
0 => array(
'user.id' => '2012',
'user.name' => 'foo',
'user.email' => 'foo@example.com'
),
1 => array(
'user.id' => '2013',
'user.name' => 'bar',
'user.email' => 'bar@example.com'
)
),
)
);
并且,哪个DB库(如果可能,没有ORM)可以不费吹灰之力地完成这项工作?
答案 0 :(得分:1)
为什么不进行两个单独的查询,一个用于检索文章,另一个用于检索与文章相关的用户数据,而不是在一个查询中检索文章和用户数据。它肯定更简单,可能更有效率。
答案 1 :(得分:0)
在PDO类中使用此方法不是一个好习惯。 PDO与DB一起使用,应该返回结构化数据。您可以编写自己的函数,使用返回的数组进行操作。