Active Record未显示正确的查询

时间:2014-02-22 23:30:16

标签: php mysql codeigniter

有人可以告诉我为什么我无法使用codeigniter中的活动记录显示以下查询。我想我的select语句中的TIMEDIFF有问题,因为TOTAL和FROM之间没有空格

这是我的有效记录查询

$this->db->select('s.id, s.person_id, p.first_name, p.last_name, sch.id, sch.start_date, sch.start_hour, sch.end_hour, TIMEDIFF(sch.end_hour, sch.start_hour) AS total');
$this->db->join('staff s', 'sch.staff_id = s.id', 'left');
$this->db->join('persons p', 's.person_id = p.id', 'left');
$this->db->where('sch.start_date >=', $start);
$this->db->where('sch.start_date <=', $end);
$this->db->limit(10);

$query = $this->db->get('work_schedule sch');

这就是如何打印出来的

SELECT `s`.`id`,
   `s`.`person_id`,
   `p`.`first_name`,
   `p`.`last_name`,
   `sch`.`id`,
   `sch`.`start_date`,
   `sch`.`start_hour`,
   `sch`.`end_hour`,
TIMEDIFF(sch.end_hour,`sch`.`start_hour)` AS totalFROM (`work_schedule` sch)
LEFT JOIN `staff` s ON `sch`.`staff_id` = `s`.`id`
LEFT JOIN `persons` p ON `s`.`person_id` = `p`.`id`
WHERE `sch`.`start_date` >= '2014-02-19'
  AND `sch`.`start_date` <= '2014-02-20'LIMIT 10

1 个答案:

答案 0 :(得分:0)

你可以尝试一下。

$query = $this->db->select('s.id, s.person_id, p.first_name, p.last_name, sch.id, sch.start_date, sch.start_hour, sch.end_hour, TIMEDIFF(sch.end_hour, sch.start_hour) AS total', FALSE)
                  ->from('work_schedule sch')
                  ->join('staff s', 'sch.staff_id = s.id', 'left')
                  ->join('persons p', 's.person_id = p.id', 'left')
                  ->where('sch.start_date >=', $start)
                  ->where('sch.start_date <=', $end)
                  ->limit(10)
                  ->get();

$result = $query->result();