簡體   English   中英

Codeigniter,活動記錄,將第二個表值作為數組聯接

[英]Codeigniter, Active record, join second table values as array

兩張桌子:第一張-kons,第二張-訂單。 通過字段kons.id和order.id_kons鏈接
這是我的查詢:

$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();

結果是(示例,剪切):

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"
  }

  } .....

但是我需要這樣的東西:

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"
  }

您可以使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM