1

我有三个表案例,客户,出席

在案件

id start_date end_date client_id 状态

1 2012-12-30 2013-01-30 1 新开始

2 2012-12-31 2013-01-31 2 试用期

在客户

id 姓名 dob 性别 状态

1 汤姆 1987-01-30 马

2 杰瑞 1985-01-31 FD

出席

id client_id 日期状态

1 1 2013-01-30

2 1 2013-01-31

我需要这样的结果

case_id case_start_date case_end_date client_id Name att_date atte_status

1 2012-12-30 2013-01-30 1 汤姆 2013-01-30,2013-01-31 A,P

这可能吗?我是一个自学者,我对加入查询没有好主意,请任何人帮助我....

4

2 回答 2

0

尝试这个..

$this->db->select('ca.*,ci.Name,a.date,a.status');
$this->db->from('cases'.' ca');
$this->db->join('clients'.' ci','ca.client_id=ci.id','left');
$this->db->join('attendance'.' a','a.client_id=ci.id','left');
return $this->db->get();

如果您想了解有关加入和活动记录的更多信息,请阅读用户指南...

于 2013-01-02T05:49:15.683 回答
0

这是一个非常简单的示例,可让您开始使用所有 Construcor Code Construct $joinsas array 的任意数量的连接常见乐趣:

$joins = array(
    array(
        'table' => 'table2',
        'condition' => 'table2.id = table1.id',
        'jointype' => 'LEFT'
    ),
);

将连接作为数组处理的示例函数:

public function get_joins($table, $columns, $joins)
{
    $this->db->select($columns)->from($table);
    if (is_array($joins) && count($joins) > 0)
    {
        foreach($joins as $k => $v)
        {
            $this->db->join($v['table'], $v['condition'], $v['jointype']);
        }
    }
    return $this->db->get()->result_array();
}
于 2013-01-02T06:17:00.530 回答