Php 左联接不返回左表codeigniter中的所有行

Php 左联接不返回左表codeigniter中的所有行,php,mysql,codeigniter,Php,Mysql,Codeigniter,在发布之前,我发现了很多类似的问题,但没有发现与“Codeigniter”相关的问题,所以我不知道如何用Codeigniter实现这些答案 我的元键表格 key_id | key_name | key_parent ------------------------------ .....1..firstname........1 .....2..lastname.........1 meta_id | meta_user_id | meta_key_id |meta_value | ----

在发布之前,我发现了很多类似的问题,但没有发现与“Codeigniter”相关的问题,所以我不知道如何用Codeigniter实现这些答案

我的元键表格

key_id | key_name | key_parent
------------------------------
.....1..firstname........1

.....2..lastname.........1
meta_id | meta_user_id | meta_key_id |meta_value |
--------------------------------------------------
1.........1..............1............chuck......
我的用户\u meta

key_id | key_name | key_parent
------------------------------
.....1..firstname........1

.....2..lastname.........1
meta_id | meta_user_id | meta_key_id |meta_value |
--------------------------------------------------
1.........1..............1............chuck......
当我运行此查询时

$this->db->select("*");
    $this->db->from("meta_key");
    $this->db->join("users_meta", "users_meta.meta_key_id=meta_key.key_id","left");
    $this->db->where('users_meta.meta_user_id', '1');
    $query=$this->db->get();
    return $query;
它总是返回单行(即firstname行)

我尝试了codeigniter参考页面中的每个选项(选项有:左、右、外、内、左外和右外),而不是“左”连接,但它仍然返回单行


我怎样才能让它也返回“姓氏”行呢?

正如您所评论的,下面的代码适用于您,所以这里是答案

//just guess and try 
$this->db->where('users_meta.meta_user_id = 1 OR users_meta.meta_key_id IS NULL');

我猜这不是关于你的左联,而是关于你的where子句。@Florian。我还应该如何使用where子句呢?只要猜测并尝试
$this->db->where('users\u meta.meta\u user\u id=1或users\u meta.meta\u key\u id为NULL')
@cjmling-(因为马克已经删除了他的答案)如果
key\u parent
列引用了父
key\u id
,那么他的答案是正确的。如果没有,那么具有
key\u id
2的行如何链接到具有
key\u id
1的父行?@LievenKeersmaekers:它们是相互链接的,正如我在join语句“users\u meta.meta\u key\u id=meta\u key.key\u id”中使用的那样