如何从两个或多个表中选择行?
我正在为表单设置默认字段,我需要两个表中的值...
我目前的代码是:
$this->CI->db->select('*');
$this->CI->db->from('user_profiles');
$this->CI->db->where('user_id' , $id);
$user = $this->CI->db->get();
$user = $user->row_array();
$this->CI->validation->set_default_value($user);
答案 0 :(得分:20)
“用户指南”中的示例应解释此:
$this->db->select('*'); // <-- There is never any reason to write this line!
$this->db->from('blogs');
$this->db->join('comments', 'comments.id = blogs.id');
$query = $this->db->get();
// Produces:
// SELECT * FROM blogs
// JOIN comments ON comments.id = blogs.id
请参阅“用户指南”中Active Record页面下的整个内容。
答案 1 :(得分:10)
只需将另一个表添加到“ - &gt; from()”方法即可。类似的东西:
$this->db->select('t1.field, t2.field2')
->from('table1 AS t1, table2 AS t2')
->where('t1.id = t2.table1_id')
->where('t1.user_id', $user_id);
答案 2 :(得分:8)
我认为问题不在于如何从两个不同的表中显示值的连接 - 用户指南似乎无法解释这一点。
这是我的看法:
$this->db->select('u.*, c.company, r.description');
$this->db->from('users u, company c, roles r');
$this->db->where('c.id = u.id_company');
$this->db->where('r.permissions = u.permissions');
$query = $this->db->get();
答案 3 :(得分:1)
我认为语法不正确。 您需要选择一条记录。我有两个表,并且我通过参数传递一个表的id,以及两个表的关系。
答案 4 :(得分:1)
试试这个
$this->db->select('*')
->from('student')
->where('student.roll_no',$id)
->join('student_details','student_details.roll_no = student.roll_no')
->join('course_details','course_details.roll_no = student.roll_no');
$query = $this->db->get();
return $query->row_array();
答案 5 :(得分:0)
$SqlInfo="select a.name, b.data fromtable1 a, table2 b where a.id=b.a_id";
$query = $this->db->query($SqlInfo);
尝试这种方式,你可以添加一个名为c的第三个表,并在sql命令中添加一个'和'命令。
答案 6 :(得分:0)
///从“表1”的所有字段中选择,然后从表2中选择一个或多个字段...。
$this->db->select('table1.*, table2.name');
$this->db->from('table1, table2');
$this->db->where('table2.category_id = table1.id');
$this->db->where('table2.lang_id',$id); // your where with variable
$query = $this->db->get();
return $query->result();