CodeIgniter - 在 JS 图形问题中加入两个表以按天输出
CodeIgniter - Join Two Tables for Output by Day in JS Graphing Trouble
我的一个连接语句在 CI 中按天获取 JS 折线图的输出时遇到问题。在这里进行了大量研究,但似乎没有任何效果。
这是我的模型
function get_all ( $start_date, $end_date)
{
$ret = array();
$this->db->select('DATE(created_at) AS DAY, COUNT(*) AS COUNT');
$this->db->from('table1');
$this->db->where('item_id =', 5);
$this->db->where('created_at >=', $start_date);
$this->db->where('created_at <=', $end_date);
$this->db->join('table2', 'table2.id = table1.part_id AND table2.stock_id = 1', 'left' );
$this->db->group_by('DAY(created_at)');
$query = $this->db->get();
foreach ($query->result() as $row)
{
$ret[$row->DAY] = intval($row->COUNT);
}
return $ret;
}
可以注释掉连接,它工作正常。我尝试了几种不同的修改方式,但无论我尝试哪种方式,都无法加载数据。
非常感谢任何见解!谢谢。
试试这个:
未测试。
function get_all ( $start_date, $end_date)
{
$ret = array();
$this->db->select('table1.DATE(created_at) AS DAY, COUNT(*) AS COUNT');
$this->db->from('table1');
$this->db->join('table2', 'table2.id = table1.part_id', 'left');
$this->db->where('table1.item_id =', 5);
$this->db->where('table1.created_at >=', $start_date);
$this->db->where('table1.created_at <=', $end_date);
$this->db->where('table2.stock_id =', 1);
$this->db->group_by('table1.DAY(created_at)');
$query = $this->db->get();
foreach ($query->result() as $row)
{
$ret[$row->DAY] = intval($row->COUNT);
}
return $ret;
}
认为这已解决,无论如何我都能正常工作...对于遇到类似问题的任何人:
function get_all ( $start_date, $end_date)
{
$ret = array();
$this->db->select('DATE(table2.created_at) AS DAY, COUNT(*) AS COUNT');
$this->db->from('table1');
$this->db->join('table2', 'table2.part_id = table1.id AND table2.created_at >= \'' . $start_date . '\' AND table2.created_at <= \'' . $end_date . '\' AND table2.item_id = 5', 'left');
$this->db->where('table1.stock_id =', 1);
$this->db->group_by('DAY(table2.created_at)');
$query = $this->db->get();
foreach ($query->result() as $row)
{
$ret[$row->DAY] = intval($row->COUNT);
}
return $ret;
}
我的一个连接语句在 CI 中按天获取 JS 折线图的输出时遇到问题。在这里进行了大量研究,但似乎没有任何效果。
这是我的模型
function get_all ( $start_date, $end_date)
{
$ret = array();
$this->db->select('DATE(created_at) AS DAY, COUNT(*) AS COUNT');
$this->db->from('table1');
$this->db->where('item_id =', 5);
$this->db->where('created_at >=', $start_date);
$this->db->where('created_at <=', $end_date);
$this->db->join('table2', 'table2.id = table1.part_id AND table2.stock_id = 1', 'left' );
$this->db->group_by('DAY(created_at)');
$query = $this->db->get();
foreach ($query->result() as $row)
{
$ret[$row->DAY] = intval($row->COUNT);
}
return $ret;
}
可以注释掉连接,它工作正常。我尝试了几种不同的修改方式,但无论我尝试哪种方式,都无法加载数据。
非常感谢任何见解!谢谢。
试试这个:
未测试。
function get_all ( $start_date, $end_date)
{
$ret = array();
$this->db->select('table1.DATE(created_at) AS DAY, COUNT(*) AS COUNT');
$this->db->from('table1');
$this->db->join('table2', 'table2.id = table1.part_id', 'left');
$this->db->where('table1.item_id =', 5);
$this->db->where('table1.created_at >=', $start_date);
$this->db->where('table1.created_at <=', $end_date);
$this->db->where('table2.stock_id =', 1);
$this->db->group_by('table1.DAY(created_at)');
$query = $this->db->get();
foreach ($query->result() as $row)
{
$ret[$row->DAY] = intval($row->COUNT);
}
return $ret;
}
认为这已解决,无论如何我都能正常工作...对于遇到类似问题的任何人:
function get_all ( $start_date, $end_date)
{
$ret = array();
$this->db->select('DATE(table2.created_at) AS DAY, COUNT(*) AS COUNT');
$this->db->from('table1');
$this->db->join('table2', 'table2.part_id = table1.id AND table2.created_at >= \'' . $start_date . '\' AND table2.created_at <= \'' . $end_date . '\' AND table2.item_id = 5', 'left');
$this->db->where('table1.stock_id =', 1);
$this->db->group_by('DAY(table2.created_at)');
$query = $this->db->get();
foreach ($query->result() as $row)
{
$ret[$row->DAY] = intval($row->COUNT);
}
return $ret;
}