我正在重构一些代码,并寻找尝试提高可读性和性能的方法。
困扰我的一个项目是我需要一个在一侧有多个对象的连接语句的情况。例如...
Foo Schema Bar 2 Schema
-------------- ---------------
id id
data fooId
data
Result from Search:
---------------------
id barId fooData
1 1 ...
1 2 ...
1 3 ...
2 4 ...
3 5 ...
我的最终结果,在查询对象 Foo 时,需要是一个包含相关 id(或基于 id 获取的对象)的对象 Foo。
目前,我最终不得不在 PHP 级别压缩多行,将 bar id 添加到 Foo 直到 foo id 更改。这有点难看,但它确实有效。我想减少我的结果集是:
Result from Search:
---------------------
id barIds fooData
1 [1,2,3] ...
2 4 ...
3 5 ...
有没有办法在 SQL 级别做到这一点?(请注意,我不是在寻找文字字符串 1、2、3,我想要一个由 id 的 1、2 和 3 组成的数组——但如果我必须取一个字符串然后转换,我可以做)
顺便说一句,我的意图是将它与 PDO::fetch_class 结合起来,让我在一行中实例化类,而不是花时间编写多行千篇一律的代码来加载类的属性。