0

这有点难以描述,但在这里。

我正在使用 codeignitermaintenance_jobs从一个表中选择并加入另一个名为 的表maintenance_job_items,这maintenance_job_items是该特定作业的更新列表。

表格如下

MAINTENANCE JOBS
|-------|-----------|--------------|
| index | job_title | date_created |
|-------|-----------|--------------|
MAINTENANCE_JOB_ITEMS
|-------|-----------------------|-------------|--------------|
| index | maintenance_job_index | description | date_updated |
|-------|-----------------------|-------------|--------------|

我需要能够返回所有维护作业以及maintenance_job_items表中的最新更新,然后date_updated DESC使用 codeigniter 的活动记录对它们进行排序。我试过group_by, select_max, order_by, 等等,但似乎无法得到我想要的。任何帮助将不胜感激,如果您不明白我的要求,请直说,因为我发现它有点难以解释。

4

2 回答 2

0

尝试这个:

$this->db->select("mj.*, mi.date_updated");
$this->db->from('maintenance_job as mj');
$this->db->join('maintenance_job_items as mi','mj.index=mi.maintenance_job_index','left');
$this->db->order_by('mi.date_updated');

尝试//echo $this->db->last_query();检查查询是否正确。

于 2013-04-24T10:34:34.097 回答
0

解决方案:1

 $this->db->select('MAINTENANCE_JOBS.*,MAINTENANCE_JOB_ITEMS.date_updated');
 $this->db->join('MAINTENANCE_JOBS', 'MAINTENANCE_JOBS.index = MAINTENANCE_JOB_ITEMS.index');
 $this->db->group_by("MAINTENANCE_JOBS.index"); 
 $this->db->order_by("MAINTENANCE_JOBS.date_updated", "desc"); 
 $kd = $this->db->get('MAINTENANCE_JOB_ITEMS');
    $result_array = array();
    foreach ($kd->result_array() as $row)
    {
        $result_array[] = $row;
    }

echo '<pre>'
print_r($result_array);
echo '</pre>'

解决方案:2

 $this->db->distinct('MAINTENANCE_JOBS.*,MAINTENANCE_JOB_ITEMS.date_updated');
 $this->db->join('MAINTENANCE_JOBS', 'MAINTENANCE_JOBS.index = MAINTENANCE_JOB_ITEMS.index');
$this->db->order_by("MAINTENANCE_JOBS.date_updated", "desc"); 
$kd = $this->db->get('MAINTENANCE_JOB_ITEMS');
    $result_array = array();
    foreach ($kd->result_array() as $row)
    {
        $result_array[] = $row;
    }

 echo '<pre>'
 print_r($result_array);
 echo '</pre>'
于 2013-04-24T11:04:00.287 回答