sql命令无法正常执行

时间:2017-09-22 16:34:54

标签: php mysql codeigniter codeigniter-3

我的数据库instructorscourses中有两个表。我想加入他们,因此写了这段代码

$this->db->join('instructors', 'instructors.id = courses.instructor_id', 'left');
$query = $this->db->get_where('courses', array('courses_slug' => $slug));
return $query->row_array();

此代码表示:

SELECT * FROM `courses` LEFT JOIN `instructors` ON `instructors`.`id` = `courses`.`instructor_id` WHERE `courses_slug` = 'abituriyent-hazirligi'

但是当我编写这段代码来检查时:

$data['courses'] = $this->popular_courses_model->get_popular_courses($slug);
echo $data['courses']['id'];
die();

它写了教师id,而不是课程的id。哪里可以问题?提前谢谢。

2 个答案:

答案 0 :(得分:1)

您正在使用相同名称的列(' id')加入两个表格。您需要在选择列时具体,并在必要时重命名(' AS')。

select courses.id as course_id, instructor.id as instructor_id, ...

答案 1 :(得分:0)

使用联接时,您应该明确地调出要返回的列,如:

$select = "c.id, c.name, c.instructor_id, i.name instructor_name";

return $this->db->select($select)
//equivalent to "instructors as i" 
->join('instructors i', 'i.id = c.instructor_id', 'left')
->where('c.courses_slug', $slug)
//equivalent to "courses as c" 
->get('courses c')->row_array();