我在CodeIgniter 3上使用Query builder与Oracle DB。 我无法创建普通查询。我的疑问是:
$CI->db->query('c.*',false);
$CI->db->from('COUNTRIES c',false);
$CI->db->join('FILIALS as f','f.country_id=c.country_id',false);
$CI->db->where('f.FILIAL_ID',$id,false);
$query=$CI->db->get();
return $query->result('Country')[0];
这给了我一个查询
SELECT c.* FROM "COUNTRIES" "c" JOIN "FILIALS" as "f" ON "f"."country_id"="c"."country_id" WHERE f.FILIAL_ID = 7
但是这个查询不起作用,抱怨查询不正确。在Sqlplus中同样的问题。 但是如果我在sqlplus中手动运行,删除" as",并在表字段和表名中引用,它就可以正常工作。 这是我的工作查询:
SELECT c.* FROM "COUNTRIES" c JOIN "FILIALS" f ON f.country_id=c.country_id WHERE f.FILIAL_ID = 7
如何告知查询生成器,删除" as",以及查询中的quotata标记。
答案 0 :(得分:1)
尝试此查询:
$this->db->select('c.*',false);
$this->db->from('COUNTRIES c',false);
$this->db->join('FILIALS as f','f.country_id=c.country_id',false);
$this->db->where('f.FILIAL_ID',$id,false);
$query = $this->db->get();
return $query->result();
答案 1 :(得分:0)
从联接中删除AS
我完成了它。
$this->db->select('c.*',false);
$this->db->from('COUNTRIES c',false);
$this->db->join('FILIALS f','f.country_id=c.country_id',false);
$this->db->where('f.FILIAL_ID',$id,false);
$query = $this->db->get();
return $query->result();