当其中一个表中没有记录时,记录不会显示

时间:2019-01-11 10:56:09

标签: php mysql codeigniter-3

我正在使用Join查询从正在运行的多个表中获取数据。

现在我的问题是,当表之一(tbl_Fees或membership_details)中没有记录时,我没有得到记录。有时我会出错。应该至少显示我的members记录。

我尝试了以下代码

模型

public function Memberinfo(){
   $getDetails = array('members.member_id'=>$this->session->userdata['login_session']['id'],'members.is_status'=>1);
   $result = $this->db->where($getDetails)
                      ->select('*')
                      ->from('members')
                      ->join('membership_details', 'members.member_id = membership_details.member_id','LEFT')
                      ->join('tbl_Fees', 'membership_details.Fees_id = tbl_Fees.Fees_id')
                      ->get()
                      ->row();
                return $result;

        } 

您能帮我吗?

1 个答案:

答案 0 :(得分:0)

正如评论者所指出的,这是由于您指定的联接。使用JOIN将默认为内部联接-因此为什么未获得所需的结果。

以下是SQL中可用的JOIN类型:

(内部)联接: 返回两个表中具有匹配值的记录

左(外)联接: 从左侧表返回所有记录,并从右侧表返回匹配的记录

右(外)联接: 从右表返回所有记录,并从左表返回匹配的记录

完全(外部)联接: 在左表或右表匹配时返回所有记录

作为参考,请参见下面的图像,这些图像可以帮助您更轻松地可视化联接。

Example of INNER JOIN Example of LEFT JOIN Example of RIGHT JOIN

最后,您可能正在寻找的联接:

Example of INNER JOIN

这应该是足以使您更正代码的信息。