使用join语句,但如果table为空

时间:2015-11-05 23:02:41

标签: php mysql codeigniter join

创建查询时,我想要使用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 表包含与成员相关的数据

2 个答案:

答案 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()