内部联接3个不同的表codeigniter



我需要连接三个相互获取的表(不是集中到一个表(

第一张表:出勤率

---------------------------------------------------------------
|   id    |   emp_code   |   emp_name   |  date    |   time   |
|   001   |   TNY        |   Tony       |01.01.2001|   07.00  |
|   002   |   PPR        |   Pepper     |01.01.2001|   07.50  |
---------------------------------------------------------------

第二张表:员工

---------------------------------------------------------
|   emp_code   |   emp_name   |division_code|  address  |
|   TNY        |   Tony       |    D001     |  New york |
|   PPR        |   Pepper     |    D002     | California|
---------------------------------------------------------

第三张表:部门

-----------------------------
|division_code|division_name|
|   D001      |   Finance   |
|   D002      |  Marketing  |
-----------------------------

我想得到的结果是:

-----------------------------------------------------------------------------
|   id    |   emp_code   |   emp_name   |division_name|  date    |   time   |
|   001   |   TNY        |   Tony       |  Finance    |01.01.2001|   07.00  |
|   002   |   PPR        |   Pepper     |  Marketing  |01.01.2001|   07.50  |
-----------------------------------------------------------------------------

我的模型中的代码:

function ShowData()
{
$this->db->select('attendance.emp_code, attendance.emp_name,division.division_name,attendance.date,attendance.time');    
$this->db->from('attendance');
$this->db->join('employee', 'employee.emp_code = attendance.emp_code');
$this->db->join('division', 'employee.division_code = division.division_code');
$query = $this->db->get();
}

我的代码的结果是什么都没有,没有显示任何数据,我认为这是因为我的查询

您的方法不是returning任何东西:

$this->db->selct('a.id, a.emp_code, a.emp_name, d.divison_node, a.date, a.time');
$this->db->join('employee AS e', 'e.emp_code = a.emp_code');
$this->db->join('division AS d', 'd.division_code = e.division_code');
return $this->db->get('attendance AS a')->result(); 

您的代码缺少最后一个数据获取程序:

function ShowData()
{
$this->db->select('attendance.emp_code, attendance.emp_name,division.division_name,attendance.date,attendance.time');    
$this->db->from('attendance');
$this->db->join('employee', 'employee.emp_code = attendance.emp_code');
$this->db->join('division', 'employee.division_code = division.division_code');
$query = $this->db->get();
$data = $query->result_array(); // here will be stored the selected data as an array
}

$this->db->get();只是使用CI查询生成器创建一个SQL语句并执行它,它不返回SQL输出数据,您只收到查询本身的一个对象。

但是$query->result_array();获取SQL输出数据并为您格式化数据——在本例中为数组。

如果你想返回数据,只需在函数体中添加这一行:

return $data;

相关内容

  • 没有找到相关文章

最新更新