【问题标题】:get distinct record from 3 tables using join in codeigniter使用 codeigniter 中的连接从 3 个表中获取不同的记录
【发布时间】:2012-12-16 12:29:00
【问题描述】:

我有三张桌子 案例、客户、出勤

万一

id start_date end_date client_id status

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

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

在客户中

id 姓名 dob 性别状态

1 汤姆 1987-01-30 M A

2 杰瑞 1985-01-31 F D

出席

id client_id 日期状态

1 1 2013-01-30 A

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 汤姆 2013-01-30,2013-01-31 A,P

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

【问题讨论】:

  • 必须有 1001 个已回答关于如何加入表格的问题。请搜索或阅读有关表连接/SQL/数据库的书籍。右侧的“相关”列可能是一个不错的起点。

标签: codeigniter join left-join inner-join outer-join


【解决方案1】:

试试这个..

$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();

如果您想了解有关加入和活动记录的更多信息,请访问user guide...

【讨论】:

    【解决方案2】:

    这是一个非常简单的示例,可让您开始使用任意数量的加入共同乐趣 构造代码 将$joins 构造为数组:

    $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();
    }
    

    【讨论】:

      猜你喜欢
      • 2019-01-10
      • 1970-01-01
      • 1970-01-01
      • 2016-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多