(解决了!谢谢你们的建议=)
$ contact = $ db-> select('*')
- > from(array('c'=>'contact'),array('name','id'))
- > join(array('d'=>'detail'),'c.id = d.contact_id',array('d.type'))
- > where('c.company_id =?',$ defaultNamespace-> userdata ['company_id'])
- > where('c.effective<?',date(“Y-m-d H:i:s”))
- > where('c.expire>?',date(“Y-m-d H:i:s”))
- > order('c.effective DESC');
$ stmt = $ db-> query($ contact);
$ contact = $ stmt-> fetchAll();
foreach($contact as &$point){
print_r($point);
}
输出:
数组([名称] => John Doe [id] => 1 [type] => Skype)数组([name] => John Doe [id] => 1 [type] =&gt ; MSN)
我想:
数组([name] => John Doe [id] => 1 [point] =>数组(Skype,MSN))
答案 0 :(得分:0)
您可以使用自定义Zend_Db_Select类来完成此操作。该类将使用一些 cols并使用GROUP CONCAT分隔符对它们进行爆炸,你将在查询中使用group concat;)这是我能想到的唯一解决方案;)
答案 1 :(得分:-1)
在mySQL中,您可以执行SELECT id, name, GROUP_CONCAT(type) FROM contact WHERE id = 3 GROUP BY id, name, type;
不确定它会对你有用,但你可以尝试一下。