簡體   English   中英

內部聯接3個不同的表codeigniter

[英]Inner join 3 different tables 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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM