Php mysql join仅在第一行应该是多行时返回第一行

Php mysql join仅在第一行应该是多行时返回第一行,php,mysql,codeigniter,join,codeigniter-3,Php,Mysql,Codeigniter,Join,Codeigniter 3,我试图从两个表中检索信息:user和meta。然而,我只得到第一排,而不是全部 用户表如下所示 ID | Display Name | Email 1 | Test | test@test.com meta_id | user_id | meta_key | meta_value 123 | 1 | address | 123 somewhere 123 | 1 | city | Metropolis 元表看起来像这样 ID

我试图从两个表中检索信息:user和meta。然而,我只得到第一排,而不是全部

用户表如下所示

ID | Display Name | Email
1  | Test         | test@test.com
meta_id | user_id | meta_key | meta_value
123     | 1       | address  | 123 somewhere
123     | 1       | city     | Metropolis
元表看起来像这样

ID | Display Name | Email
1  | Test         | test@test.com
meta_id | user_id | meta_key | meta_value
123     | 1       | address  | 123 somewhere
123     | 1       | city     | Metropolis
这是我的问题

$query = $this->db->from('users as u');
$query = $this->db->join('meta as m', 'u.ID = m.user_id');
$query = $this->db->where('ID', $data['ID']);
$query = $this->db->get();

return $query->row_array();
但是我得到了用户表的所有内容,但是只有元表的第一行。正在尝试获取元表中与user_id=1匹配的所有行


为了让它工作,我缺少了什么?

试试这个。希望它能有所帮助

$this->db->select('u.*, m.*');
$this->db->from('users as u');
$this->db->join('meta as m', 'u.ID = m.user_id');
$this->db->where('u.ID', $data['ID']);
$query = $this->db->get();

return $query->row_array();

是要检索查询的所有结果还是仅检索第一行

$query = $this->db->from('users as u');
$query = $this->db->join('meta as m', 'u.ID = m.user_id');
$query = $this->db->where('ID', $data['ID']);
$query = $this->db->get();
仅使用一个结果:
row\u array()
返回单个结果行。如果查询有多行,则只返回第一行。结果作为数组返回

return $query->row_array();
使用以下方法获取结果数组:
result\u array()
方法以纯数组形式返回查询结果

return $query->result_array();

我们越来越近了。现在我从第二个表“meta_key”和“meta_value”中得到两个变量。我如何保存它,以便对于第1行,Address成为变量,meta_value是它的值?如果只需要“meta_key”和“meta_value”,那么只需使用$this->db->select('m.meta_key,m.meta_value'),如果只需要一行,则返回$query->row()。您将只得到第一个rowresult_数组,这正是我需要的,现在通过数组解析:p