这有点难以描述,但现在就去了。
我正在使用codeigniter从表中选择maintenance_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
表中的最新更新,然后使用codeigniter的活动记录按date_updated DESC
排序。我试过group_by
,select_max
,order_by
等,但似乎无法得到我想要的东西。任何帮助将不胜感激,如果您不理解我要求的内容,请说出来,因为我发现它有点难以解释。
答案 0 :(得分: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();
检查查询是否正确。
答案 1 :(得分: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>'