codeigniter - 如何将 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 中,您可以使用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;
推荐阅读
- python - 有人可以帮我修复 Python 文本冒险 RPG 游戏的代码吗?
- javascript - 使用 Webpanel 的 Discord 机器人?
- sql - 创建基于特定值重置的附加排名
- java - 如何在 dius.pact 中实现“or()”方法
- html - 如何在 Google 自定义搜索的 URL 中应用过滤和排序结果?
- javascript - 如何解决 Zoomooz.js 与 JQueryUI 自动完成的冲突?
- azure-web-app-service - 用于获取 Azure WebApp 详细信息的 Powershell 脚本
- perl - 如何在 perl 中创建递归 'ls' 命令?
- odata - 如何在 JayStack odata-v4-server 中从“默认”更改元数据 EntityContainer
- git - 'git checkout commit-sha' 究竟是做什么的?