从 Codeigniter Active Record 中的子查询中选择

Posted

技术标签:

【中文标题】从 Codeigniter Active Record 中的子查询中选择【英文标题】:SELECT from subquery in Codeigniter Active Record 【发布时间】:2015-07-07 06:03:28 【问题描述】:

我将如何在 Codeigniter ActiveRecord 中执行以下查询:-

SELECT *, 

(SELECT 
        image_path
    FROM
        image
    WHERE
        image_table = 'model'
            AND image_table_id = model_id
    GROUP BY image_table_id
    LIMIT 1) AS ModelImg 

FROM

   (SELECT 
      *
   FROM
      vw_newcars
    where offer_table = 'derivative'
    order by offer_order
   ) x

WHERE make_name = 'Fiat'
group by offer_table_id
limit 12

我遇到的问题是如何从 Active Record 中的子查询中进行选择。

我在文档中没有看到 from_select 函数或任何类似的东西。

【问题讨论】:

你用的是什么版本的codeigniter? 【参考方案1】:

我设法通过将from sub_query 放入初始选择语句来使查询工作:

$this->db->select("*, 
  (select image_path from image where image_table = 'model' and image_table_id = model_id
  group by image_table_id limit 1) as ModelImg FROM 
  (SELECT * FROM $view where offer_table = 'derivative' order by offer_order) x"); 

【讨论】:

我更喜欢 $t​​his->query($sql);一次运行完整的查询

以上是关于从 Codeigniter Active Record 中的子查询中选择的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter Active Record使用多个主键选择多行

CodeIgniter Active Record 一次删除多条记录

CodeIgniter Active Record 查询 WITH/ 子查询

codeigniter 选择查询的问题

CodeIgniter/PHP Active Record 不会增加整数

Codeigniter Active Record 类插入