首页 > 解决方案 > 如何将 Sql 查询转换为 codeigniter Active Record

问题描述

我有如下的 sql 查询,我需要将 sql 转换为 codeigniter 活动记录。

select * from color c 
    left join (select pc.* from product_color pc
        LEFT join product p on pc.product_id=p.product_id
        WHERE p.product_id=1)x on c.id=x.color_id

标签: codeigniter

解决方案


在 codeigniter 中,您可以使用get_compiled_select函数获取编译查询。

让我们先创建内部查询。

     $inner_query = $this->db->select('pc.*')
     ->from('product_color pc')
     ->join('product p','pc.product_id = p.product_id','left')
     ->where('p.product_id',1)
     ->get_compiled_select();

现在我们将使用内部查询来创建我们的最终查询。

 $final_query = $this->db->select('*')
 ->from('color c')
 ->join("($inner_query) x",'c.id=x.color_id','left')
  ->get_compiled_select();
echo $final_query; die;

推荐阅读