首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在laravel中处理phpMyAdmin返回错误的原始Mysql查询

在laravel中处理phpMyAdmin返回错误的原始Mysql查询
EN

Stack Overflow用户
提问于 2018-03-08 12:59:28
回答 1查看 316关注 0票数 1

我有一个雄辩的疑问:

代码语言:javascript
运行
AI代码解释
复制
return DB::table('users')
        ->leftJoin('bet', function($join) use ($competition_id){
          $join->on('users.id', '=', 'bet.user_id');
          $join->on('bet.competition_id','=', DB::raw("$competition_id"));
        })
        ->select('users.*', DB::raw('SUM(points) as score'))->get();

它会返回一个错误:

SQLSTATE42000:语法错误或访问冲突: 1140混合组列(MIN()、MAX()、COUNT()、.)如果没有GROUP BY子句,则列是非法的(SQL:选择和(分数)从** users 左加入 bet on users**.**id = bet**.**user_id bet**.**competition_id = 1E 239)

如果我只是在PhpMyAdmin中复制粘贴生成的SQL (粗体),它就能很好地工作.

你能帮我解决这个问题吗?因为这对我来说毫无意义..。

谢谢

溶液

问题只是失踪的一群人:

代码语言:javascript
运行
AI代码解释
复制
return DB::table('users')
    ->leftJoin('bet', function($join) use ($competition_id){
      $join->on('users.id', '=', 'bet.user_id');
      $join->on('bet.competition_id','=', DB::raw("$competition_id"));
    })
    ->select('users.*', DB::raw('SUM(points) as score'))->groupBy('users.id')->get();

解决方案#2

根据MySQL的版本或配置,上面的解决方案不起作用,我不得不按照Eric的建议groupBy所有字段:

代码语言:javascript
运行
AI代码解释
复制
return DB::table('users')
    ->leftJoin('bet', function ($join) use ($competition_id) {
        $join->on('users.id', '=', 'bet.user_id');
        $join->on('bet.competition_id', '=', DB::raw("$competition_id"));
    })
    ->select('users.*', DB::raw('SUM(points) as score'))
    ->groupBy('users.id')
    ->groupBy('users.name')
    ->groupBy('users.firstName')
    ->groupBy('users.lastName')
    ->groupBy('users.email')
    ->groupBy('users.admin')
    ->groupBy('users.password')
    ->groupBy('users.remember_token')
    ->groupBy('users.created_at')
    ->groupBy('users.updated_at')->get();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-08 13:09:42

我有很多问题,但原因是

  1. 你为什么不使用ORM?您应该尽可能地利用这个框架。
  2. 为什么DB::$competition_id上的raw?它只是一个插入到查询中的值
  3. 您可以在最后选择时使用selectRaw来避免另一个DB::raw
  4. 它很可能是缺少一个groupBy (你的总和是错的)。您可以通过在group by上放置MySql或禁用严格模式来做到这一点。

试试这个:

代码语言:javascript
运行
AI代码解释
复制
return DB::table('users')
        ->leftJoin('bet', function($join) use ($competition_id){
          $join->on('users.id', '=', 'bet.user_id');
          $join->on('bet.competition_id','=', DB::raw("$competition_id"));
        })
        ->select('users.*', DB::raw('SUM(points) as score'))->groupBy('users.id')->get();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49182326

复制
相关文章
在docker中安装phpmyadmin
其中,PMA_HOST和PMA_PORT填写的内容是MySQL数据库的地址和端口号
灯珑LoGin
2022/10/31
2.1K0
如何在 Go 中优雅的处理和返回错误(1)——函数内部的错误处理
在使用 Go 开发的后台服务中,对于错误处理,一直以来都有多种不同的方案,本文探讨并提出一种从服务内到服务外的错误传递、返回和回溯的完整方案,还请读者们一起讨论。
amc
2021/09/18
9.6K0
如何在 Go 中优雅的处理和返回错误(1)——函数内部的错误处理
python查询mysql,返回json
import MySQLdb import json def getSql(): try: con = MySQLdb.connect(host='localhost', user='', passwd='', db='test', charset='utf8') cursor = con.cursor() sql = "select * from user" cursor.execute(sql)
py3study
2020/01/10
3.7K0
phpMyAdmin错误提示解决
有些朋友打开phpMyAdmin出现这个的原因是 phpMyAdmin的安装目录, tmp目录不存在,或者存在但是权限不对,这是缓存目录,可以加快phpMyAdmin的运行,不会影响程序执行,就是强迫症看着受不了吧 。
煎饼
2022/12/13
2.6K0
MySQL 在查询结果中记录行号
在其他的关系型数据库中,都有rownum这类型的内置函数来提供查询结果的行号,但是MySQL没有,阿福也一直觉得奇怪。
用户2353021
2020/05/09
6.9K0
【Laravel系列7.2】错误与异常处理
在学习完 Laravel 中的日志处理模块之后,接下来马上就进入到错误和异常的学习中。其实通过之前 PHP 基础相关的学习,我们已经了解到 PHP7 中的大部分错误都已经可以通过异常来进行处理了,而我们的 Laravel 框架,基本全是通过异常来进行处理的。
硬核项目经理
2023/03/03
2.9K0
【Laravel系列7.2】错误与异常处理
Laravel Exceptions——异常与错误处理
本文 GitBook 地址:https://legacy.gitbook.com/book/leoyang90/laravel-source-analysis/details
码农编程进阶笔记
2021/07/20
2.1K0
Laravel Exceptions——异常与错误处理
解决Mysql在查询时报:1055分组查询错误的解决方法
如果是Linux,就在配置文件(my.cnf)中修改 sql_mode 的配置(在/etc/my.cnf路径下)。如果是Windows,就修改配置文件my.ini,我的是Windows,如下所示:
星辰sea
2022/10/29
1.3K0
解决Mysql在查询时报:1055分组查询错误的解决方法
点击加载更多

相似问题

phpMyAdmin查询窗口中MySQL中IF语句返回错误

10

原始查询在phpmyadmin上有效,但在laravel上无效

20

Mysql查询显示phpmyadmin中的错误

29

MySQL查询运行在phpMyAdmin中,而不是在Laravel中。

11

MySQL查询缺少在phpMyAdmin中返回的节点-mysql中的结果

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档