如何在codeigniter活动记录中编写此查询

时间:2015-09-27 06:56:38

标签: php codeigniter

如何在codeigniter活动记录中编写此查询

        select 
        a.parent_cat_id,a.parent_cat_name, b.child_cat_id,b.child_cat_name,
        c.sub_child_cat_id,c.sub_child_cat_name
        FROM parent_categories a,child_categories b,sub_child_categories c 
        WHERE a.parent_cat_id=b.parent_cat_id AND b.child_cat_id=c.child_cat_id

试过这个,但它显示0结果

        $this->db->select('a.parent_cat_id,a.parent_cat_name, b.child_cat_id,b.child_cat_name,c.sub_child_cat_id,c.sub_child_cat_name');
        $this->db->from('parent_categories a,child_categories b,sub_child_categories c');
        $this->db->where('a.parent_cat_id','b.parent_cat_id'); 
        $this->db->where('b.child_cat_id','c.child_cat_id'); 
        $result = $this->db->get()->result_array();

当我回复上面的ci查询时,我得到了

SELECT `a`.`parent_cat_id`, `a`.`parent_cat_name`, `b`.`child_cat_id`, `b`.`child_cat_name`, `c`.`sub_child_cat_id`, `c`.`sub_child_cat_name`
FROM `parent_categories` `a`, `child_categories` `b`, `sub_child_categories` `c`
WHERE `a`.`parent_cat_id` = 'b.parent_cat_id'
AND `b`.`child_cat_id` = 'c.child_cat_id' 

enter image description here

3 个答案:

答案 0 :(得分:1)

尝试更改查询中的$this->db->where,如下所示 -

$this->db->select('a.parent_cat_id,a.parent_cat_name, b.child_cat_id,b.child_cat_name,c.sub_child_cat_id,c.sub_child_cat_name');
    $this->db->from('parent_categories a,child_categories b,sub_child_categories c');
    $this->db->where("a.parent_cat_id = b.parent_cat_id"); 
    $this->db->where("b.child_cat_id = c.child_cat_id");
    $result = $this->db->get()->result_array();

答案 1 :(得分:1)

你必须使用加入查询,这是代码片段

    $this->db->select('a.parent_cat_id,a.parent_cat_name, b.child_cat_id,b.child_cat_name,c.sub_child_cat_id,c.sub_child_cat_name'); 
    $this->db->from('parent_categories a');
    $this->db->join('child_categories b', 'b.parent_cat_id = a.parent_cat_id', 'left'); 
    $this->db->join('sub_child_categories c', 'c.child_cat_id = b.child_cat_id', 'left'); 
    $query = $this->db->get();
    $res =  $query->result();

答案 2 :(得分:0)

我没有要检查的表格结构和数据。但是,试试这个。它会起作用。

 $this->db->select('a.parent_cat_id,a.parent_cat_name, b.child_cat_id,b.child_cat_name,c.sub_child_cat_id,c.sub_child_cat_name');
 $this->db->from('parent_categories a,child_categories b,sub_child_categories c');
 $this->db->join('a.parent_cat_id','b.parent_cat_id'); 
 $this->db->join('b.child_cat_id','c.child_cat_id');
 $this->db->get();