du532861657 2017-06-15 17:41
浏览 91
已采纳

mysql join只返回第一行,它应该是多个

I am trying to retrieve information from two tables, user and meta. However, I am only getting the first row instead of all of them.

User table looks like this

ID | Display Name | Email
1  | Test         | test@test.com

Meta table looks like this

meta_id | user_id | meta_key | meta_value
123     | 1       | address  | 123 somewhere
123     | 1       | city     | Metropolis

This is my query

$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();

but I get everything for the user table, but only the first row of the meta table. Trying to get all the rows that match user_id = 1 in the meta table.

What am I missing in order for this to work?

  • 写回答

3条回答 默认 最新

  • dongzhunnai0140 2017-06-16 00:38
    关注

    Did you want to retrieve all result of the query or just the first row?

    $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();
    

    Getting just one result use: row_array() returns a single result row. If your query has more than one row, it returns only the first row. The result is returned as an array.

    return $query->row_array();
    

    Getting an array of results use: result_array() method returns the query result in pure array

    return $query->result_array();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵