[英]Codeigniter, Active record, join second table values as array
Two tables: first - kons, second - orders. 两张桌子:第一张-kons,第二张-订单。 Linked by field kons.id and order.id_kons 通过字段kons.id和order.id_kons链接
This is my query: 这是我的查询:
$this->db->select("k.id as k_id, DATE_FORMAT(k.datecreate, '%d/%m/%Y %H:%i:%s') as k_dt, o.id as o_id",false);
$this->db->join('orders as o', 'o.id_kons = k.id','inner');
$this->db->from('kons as k');<br>
return $this->db->get()->result_array();
Result is (example, cut): 结果是(示例,剪切):
array(20) {
[0]=>
array(3) {
["k_id"]=>
string(2) "45"
["k_dt"]=>
string(19) "22/02/2014 15:41:35"
["o_id"]=>
string(3) "533"
}
} .....
But i need something like that: 但是我需要这样的东西:
array(x) {
[0]=>
array(3) {
["k_id"]=>
string(2) "45"
["k_dt"]=>
string(19) "22/02/2014 15:41:35"
["o_id"]=>
array(3) "533,534,536" or string(x) "533,534,536"
}
You can use GROUP_CONCAT(expr) to get comma separated order ids how ever it is not recommended because of character length restriction of default set to 1024 character but it can be increased 您可以使用GROUP_CONCAT(expr)来获取逗号分隔的订单ID,但由于建议将字符长度限制默认设置为1024个字符,因此不建议使用它,但是可以增加它
$this->db->select("k.id as k_id,
DATE_FORMAT(k.datecreate, '%d/%m/%Y %H:%i:%s') as k_dt,
GROUP_CONCAT(o.id) as o_id",false);
$this->db->join('orders as o', 'o.id_kons = k.id','inner');
$this->db->from('kons as k');
$this->db->group_by("k.id");
return $this->db->get()->result_array();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.