Php CodeIgniter活动记录联接
当我尝试左连接时,Codeigniter的活动记录似乎没有获取我的所有行 数据库设置(简化) 当我根据“things”表按用户_id获取列表时,我得到了预期的结果4Php CodeIgniter活动记录联接,php,codeigniter,activerecord,Php,Codeigniter,Activerecord,当我尝试左连接时,Codeigniter的活动记录似乎没有获取我的所有行 数据库设置(简化) 当我根据“things”表按用户_id获取列表时,我得到了预期的结果4 $sql = $this->db->where('things.user_id', $user_id)->get('things')->result(); 但当我这样做的时候,我得到了3(事情2,3和4) 我很困惑,因为它确实抓取了一个不在“like”表中的“thing”,但另一个不在其中,所以我很困惑
$sql = $this->db->where('things.user_id', $user_id)->get('things')->result();
但当我这样做的时候,我得到了3(事情2,3和4)
我很困惑,因为它确实抓取了一个不在“like”表中的“thing”,但另一个不在其中,所以我很困惑它是连接失败还是其他原因
解决:通过将分组方式从“喜欢.东西id”切换到“东西.东西id”通过将分组方式从
喜欢.东西id
切换到东西.东西id
来解决
我对3个项目的结果是将其分组为第2项
、第3项
和空
,而likes
表中没有的2个项目被分组为
$sql = $this->db->where('things.user_id', $user_id)->get('things')->result();
$sql = $this->db->select('things.thing_id as thing_id, COUNT(likes.thing_id) as likes')
->where("things.user_id", $user_id)
->from('things')
->join('likes', 'things.thing_id = likes.thing_id', 'LEFT')
->group_by('likes.thing_id')
->get()
->result();