我正在运行查询,从2个不同的表中选择数据:
$this->db->select('a.any_id, a.name');
$this->db->from('table1 a, table2 b');
$this->db->where('a.any_id = b.any_id');
$this->db->where('b.other_id = "$myId"');
如果在PHPmyAdmin中运行此查询会返回一些结果,但是当我在CodeIgniter中运行此代码时,它会返回一个空数组。
任何提示?这让我发疯了。
答案 0 :(得分:0)
我认为,因为您正在尝试加入两个表,并且您没有使用codeigniter $this->db->join()
向下滚动到用户指南,您会看到加入()https://www.codeigniter.com/user_guide/database/query_builder.html
public function example($myID) {
$this->db->select('a.any_id, a.name');
$this->db->from('table1 a', 'LEFT');
// $this->db->from('table1 a');
$this->db->join('table2 b', 'b.any_id = a.any_id', 'LEFT');
$this->db->where('a.any_id', 'b.any_id');
$this->db->where('b.other_id', $myId);
$query = $this->db->get();
return $query->result();
}
然后vardump它。
答案 1 :(得分:0)
大家好,感谢您的回复。
它与使用join子句无关。
我刚刚改变了
$this->db->where('b.other_id = "$myId"');
到
$this->db->where('b.other_id', $myId);
并且工作得很好。不确定原因,因为第一行非常适合简单查询。
答案 2 :(得分:0)
试试这个
$this->db->select('a.any_id.*,table2.name');
$this->db->from('table1 a');
$this->db->join('tabl2 b', 'a.id=b.id', 'left');
$this->db->where('a.id',$id);
$query = $this->db->get();
return $query->result();