php - CI如何在另一列查询的选择总和中选择另一列的最后一行

标签 php mysql codeigniter

+-----+-----+-------+
| PID | Qty | Price |
+-----+-----+-------+
|   1 |   5 |   100 |
|   2 |  10 |   500 |
|   3 |   4 |   300 |
+-----+-----+-------+

$this->db->select("SUM(qty) as total, price as last price");
$this->db->from('table');
$query = $this->db->get();
$result = $query->result();

现在上面的代码将返回与价格一样多的行,

我只想返回一行,其中包含总数量和最后一个价格值

预期输出:

Array (
    [0] => stdClass Object
        (
            [total] => 19
            [last_price] => 300
        )
)

我有一个包含数千行数量和价格的表,但我想选择列数量的总和,仅选择价格的最后一个值,而不是数量和所有行价格的总和,我只想要价格的最后值如何编写我的选择查询?

提前谢谢您。

最佳答案

你可以像下面这样做:-

$this->db->select("SUM( qty ) AS qty, (SELECT Price FROM  <table name> ORDER BY PID DESC LIMIT 1) AS Price");
$this->db->from('table');

注意:- 而不是 <table name>在那里写下您的实际表名。还要注意列名。

关于php - CI如何在另一列查询的选择总和中选择另一列的最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43584371/

相关文章:

php - xpath 问题中的上下文节点

php - CSV 仅导出标题数组而不是数据

php - 计算mysql中的行数?

php - Codeigniter 2 和 Kohana 3 教程?

javascript - Jquery下载开始后是否可以刷新页面?

php - 如何使用新的 Facebook PHP 客户端库获得类似 require_login() 的功能?

php - 如何在 mysql 查询的 'IN' 子句中使用 PHP 中的值数组?

php - 从 PHP 调用 MySQL 过程

MySql 排序 varchar as int,以字符开头

php - MAMP 在外部数据库连接下运行速度极慢