2012-12-04 63 views
1

返回所有行。這是我的查詢:SQL多個連接不笨

$this->db->select('e.emp_no', 'e.birth_date', 'e.first_name', 'e.last_name', 'e.gender', 'e.hire_date') 
      ->from('employees AS e') 
      ->join('titles AS t', 'e.emp_no = t.emp_no') 
      ->join('salaries AS s', 't.emp_no = s.emp_no') 
      ->join('dept_emp AS de', 's.emp_no = de.emp_no') 
      ->join('departments AS d', 'de.dept_no = d.dept_no') 
      ->join('dept_manager AS dm', 'd.dept_no = dm.dept_no') 
      ->limit($limit, $offset) 
      ->order_by($sort_by, $sort_order) 
      ->group_by('e.emp_no') 
      ->where('t.title', 'staff'); 

然後我和這個返回數組:

$ret['rows'] = $q->get()->result(); 

     print_r ($ret['rows']); 

所有這一切都輸出是EMP_NO:

Array ([0] => stdClass Object ([emp_no] => 10002) [1] => stdClass Object ([emp_no] => 10005) [2] => stdClass Object ([emp_no] => 10007) [3] => stdClass Object ([emp_no] => 10011)) 

如何獲得輸出所有選定的列?

PS:我也嘗試過使用result_array()沒有任何工作。

回答

0

您應該所有字段名組合成一個字符串,而不是將它們分離爲多個參數來select()功能

$this->db->select('e.emp_no, e.birth_date, e.first_name, e.last_name, e.gender, e.hire_date') 
     ->from('employees AS e') 
     ->join('titles AS t', 'e.emp_no = t.emp_no') 
     ->join('salaries AS s', 't.emp_no = s.emp_no') 
     ->join('dept_emp AS de', 's.emp_no = de.emp_no') 
     ->join('departments AS d', 'de.dept_no = d.dept_no') 
     ->join('dept_manager AS dm', 'd.dept_no = dm.dept_no') 
     ->limit($limit, $offset) 
     ->order_by($sort_by, $sort_order) 
     ->group_by('e.emp_no') 
     ->where('t.title', 'staff'); 
+0

謝謝!有效 –