Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在Codeigniter中编写此子查询Select AVG with Limit_Mysql_Codeigniter_Subquery - Fatal编程技术网

Mysql 如何在Codeigniter中编写此子查询Select AVG with Limit

Mysql 如何在Codeigniter中编写此子查询Select AVG with Limit,mysql,codeigniter,subquery,Mysql,Codeigniter,Subquery,以上是在Heidisql中执行的工作 在下面尝试: SELECT AVG(harian) a from (select harian from sla limit 2) b 但是,似乎没有输出,请帮助,谢谢 $rata2 = $this->db->query('SELECT AVG(harian) a from (select harian from sla limit 2) b'); 或者如果要返回数组中的数据 // Sub Query $this->db->sel

以上是在Heidisql中执行的工作

在下面尝试:

SELECT AVG(harian) a from (select harian from sla limit 2) b
但是,似乎没有输出,请帮助,谢谢

$rata2 = $this->db->query('SELECT AVG(harian) a from (select harian from sla limit 2) b');
或者如果要返回数组中的数据

// Sub Query
$this->db->select('harian')->from('sla')->limit(2);
$subQuery =  $this->db->get_compiled_select();

// Main Query
$rata2 = $this->db->select('AVG(harian)')
     ->from($subQuery)
     ->get();

return $rata2; 

旁注:SQL是一个未排序的数据集。。在MySQL(或任何其他支持
LIMIT
子句的DMB)中,不使用
orderby
而使用
LIMIT
在MySQL中没有任何有效意义。。因为SQL server现在可以自由返回有限的记录。。这意味着SQL server可以从表中选择任何记录,并将其作为限制集返回,该限制集可以是记录1和记录2,也可以是记录3和记录4。。这意味着即使使用相同的数据,每次运行查询时,
AVG
也可以更改您的值。。因此,在使用
limit
use
order by
时要记住,像这样
从sla order by limit 2
中选择harian,除了raymond所说的事实之外——我看不出您的本机查询与您的
query
函数中包含的查询有任何区别。我可以在这里告诉您如何使用QueryBuilder,但我认为它不会带来任何好处difference@RaymondNijland感谢重播和规则,我是新的代码,所以,我刚刚添加了orderby,那么语法呢,我需要$rata2的平均值。。请帮助..使用
$this->db->error()进行调试感谢@RaymondNijland和sintakonte的重播,因为我也是Javascript新手,所以我很难在其中调试这个mysql查询。但这个问题实际上用我目前的标准sql(不使用活动记录)解决了。我只需要返回数据。我可能不得不问一个关于如何在javascript中调试错误的问题(它在没有javascript的情况下工作)。谢谢,对不起,还是我的英语。Hello@Leena,谢谢你的回答,我已经通过返回查询$rata2解决了这个问题,因为我在一个函数中使用$rata作为下一个查询的值。顺便说一句,你能告诉我如何用你的版本(活动记录)返回数据吗..谢谢@Leena。我正在学习php codeigniter,并正在进行一个小项目。请检查此链接,作为我的下一个相关问题:
// Sub Query
$this->db->select('harian')->from('sla')->limit(2);
$subQuery =  $this->db->get_compiled_select();

// Main Query
$rata2 = $this->db->select('AVG(harian)')
     ->from($subQuery)
     ->get()
     ->toArray();

return $rata2;