1

私は3つのテーブルケース、クライアント、出席を持っています

場合によっては

ID start_date end_date client_id ステータス

1 2012-12-30 2013-01-30 1 新規開始

2 2012-12-31 2013-01-31 2 試用期間

クライアントで

ID 名前 生年月日 性別 ステータス

1 TOM 1987-01-30 MA

2 ジェリー 1985-01-31 FD

出席中

id client_id 日付 ステータス

1 1 2013-01-30 あ

2 1 2013-01-31 P

私はこのような結果が必要です

case_id case_start_date case_end_date client_id 名前 att_date atte_status

1 2012-12-30 2013-01-30 1 TOM 2013-01-30,2013-01-31 A,P

これは可能ですか?私は自己学習者であり、結合クエリに良い考えがありません.誰か助けてください....

4

2 に答える 2

0

$joinsこれは、配列としてのすべてのConstrucorコードコンストラクトに共通の楽しみをいくつでも開始するための非常に簡単な例です。

$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 に答える
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 に答える