【问题标题】:Fuelphp SUM in join issueFuelphp SUM 加入问题
【发布时间】:2012-08-25 22:31:43
【问题描述】:

我在燃料 php 中加入 SUM 时遇到了一点问题。

当我这样使用它时

$query = DB::select(
            'stream_post.*',
            'SUM(stream_comment.comment_stream_id)'
            )->from('stream_post');
        $query->join('stream_comment', 'LEFT');
        $query->on('stream_post.stream_id', '=', 'stream_comment.comment_stream_id');
        $query->join('users_metadata');
        $query->on('stream_post.user_id', '=', 'users_metadata.user_id');
        $query->limit(10);
        $query->order_by('stream_id', 'DESC');
        $result = $query->execute();
        if(count($result) > 0) {    
            foreach($result as $row)
            {
                $data[] = $row;
            }

            return $data;
        }

我收到此错误

找不到列:1054 未知列 'SUM(stream_comment.comment_stream_id)' in 'field 我做错了什么?

【问题讨论】:

  • comment_stream_id 存在吗?
  • 是的,没有 SUM 我没有问题,这可能是一个错误吗?
  • SUM(stream_comment.comment_stream_id) AS SteamSUM 有什么不同吗?
  • 过去尝试过类似这样的逻辑,它仍然得到未知列错误
  • 这很难读。构建 SQL 字符串并执行查询而不是调用所有这些函数有什么问题?此外,如果没有 group by,SUM 将永远无法工作。如果不对非聚合列进行分组,则查询中不能有聚合列和非聚合列。

标签: mysql sql join sum fuelphp


【解决方案1】:

需要使用expr函数在select语句中创建表达式

$result = DB::select(DB::expr(' SUM(stream_comment.comment_stream_id) as count'))->from('stream_post')->execute();

在此处记录http://docs.fuelphp.com/classes/database/usage.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-06
    • 1970-01-01
    • 2016-10-25
    相关资源
    最近更新 更多