1

我有一个表格,我在其中选择不同的框,并且每个框都存在一些记录,即数据库中的(框的开口数),但对于选定的框,可能不存在任何记录,即框未打开甚至单次。目前,当我选择不同的框并且如果一个框不存在记录时,它甚至不返回我想要的空数组,它甚至返回所选框的空结果。我怎样才能做到这一点?我的查询是

public function getBoxOpenings($boxes, $from_date, $to_date){
$query = $this->db->select('box_id, COUNT(box_id) AS Openings')
    ->from('mc_boxes_has_openings')
    ->where_in('box_id', $boxes)
    ->where('actiontime >=', $from_date)
    ->where('actiontime <=', $to_date)
    ->group_by('box_id')
    ->get();
$data = $query->result_array();
return $data;
}

编辑:

如果我选择 3 个框并提交表单,并且只存在 2 个框的记录,它会返回类似这样的内容

 Array
(
[0] => Array
    (
        [mc_boxes_idmc_boxes] => 12
        [location] => FRA-Air
        [Openings] => 1
    )

[1] => Array
    (
        [mc_boxes_idmc_boxes] => 14
        [location] => FRA-Hof
        [Openings] => 1
    )

)

我怎样才能得到所有三个记录一个空的像这样

[2] => Array
    (
        [mc_boxes_idmc_boxes] => 16
        [location] => Test
        [Openings] => 
    )

谢谢

4

1 回答 1

1

为什么不只计算整个记录?

public function getBoxOpenings($boxes, $from_date, $to_date){
$query = $this->db->select('box_id, COUNT(*) AS Openings')
    ->from('mc_boxes_has_openings')
    ->where_in('box_id', $boxes)
    ->where('actiontime >=', $from_date)
    ->where('actiontime <=', $to_date)
    ->group_by('box_id')
    ->get();
$data = $query->result_array();
return $data;
}

虽然我不明白你的 group_by 条款......

于 2012-06-11T12:43:53.527 回答