创建查询时,我想要使用join
两次,如下所示:
$this->db->select('*');
$this->db->from('members');
$this->db->join('members_group', 'members_group.mgid = members.mgid');
$this->db->join('members_profiles','members_profiles.mid = members.mid');
$this->db->where('members.mid=' . $id);
$this->db->get()
join
语句编号2中的问题,如果members_profiles
表中没有数据,则查询返回空数组。但如果我删除join
语句号2,结果将是正确的数据。
如何使查询返回数据是否 members_profiles
表包含与成员相关的数据?
答案 0 :(得分:5)
Codeigniter允许在std::regex rgx("\/\/(\\w+?){1,1}\/(\\w+?)\/([\\w\/]+)\/([\\w]+)\\.(.+)$");
方法的第三个参数中指定变体连接类型。
试试这个:
join()
普通(内部)联接会抑制第一个(左侧)表中与第二个(右侧)表不匹配的记录。左连接保留左侧不匹配右侧记录的记录。它将NULL值放在结果集的列中,这些列应该来自缺少的右侧表。这完全符合您的要求。
答案 1 :(得分:0)
使用此
$this->db->select('*');
$this->db->from('members');
$this->db->join('members_group', 'members_group.mgid = members.mgid');
$this->db->join('members_profiles','members_profiles.mid = members.mid','left');
$this->db->where('members.mid=' . $id);
$this->db->get()