[英]SQL multiple join does not return all rows in Codeigniter
這是我的查詢:
$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()
沒有任何效果。
您應該將所有字段名稱組合為一個字符串,而不是將它們作為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');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.