php - 组列与无组列混合时出现错误

标签 php mysql mysqli

我收到此错误,但不知道如何处理它。简单的解释将不胜感激。错误:

错误号:1140

Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

SELECT a.nim,b.nama_mahasiswa,c.j_sks,b.jurusan,b.kelas_program,e.status from tbl_dosen_wali a left join tbl_mahasiswa b on a.nim=b.nim left join (select k.nim,k.kd_jadwal,SUM(l.jum_sks) as j_sks from tbl_perwalian_detail k left join (select x.kd_jadwal, y.jum_sks from tbl_jadwal x left join tbl_mk y on x.kd_mk=y.kd_mk) as l on k.kd_jadwal=l.kd_jadwal) c on a.nim=c.nim left join tbl_perwalian_header e on a.nim=e.nim where a.kd_dosen='D001' group by a.nim

Filename: C:\xampp\htdocs\krs\siakad\system\database\DB_driver.php

Line Number: 330

格式化查询:

SELECT a.nim,
       b.nama_mahasiswa,
       c.j_sks,
       b.jurusan,
       b.kelas_program,
       e.status
FROM   tbl_dosen_wali a
       LEFT JOIN tbl_mahasiswa b
              ON a.nim = b.nim
       LEFT JOIN (SELECT k.nim,
                         k.kd_jadwal,
                         Sum(l.jum_sks) AS j_sks
                  FROM   tbl_perwalian_detail k
                         LEFT JOIN (SELECT x.kd_jadwal,
                                           y.jum_sks
                                    FROM   tbl_jadwal x
                                           LEFT JOIN tbl_mk y
                                                  ON x.kd_mk = y.kd_mk) AS l
                                ON k.kd_jadwal = l.kd_jadwal) c
              ON a.nim = c.nim
       LEFT JOIN tbl_perwalian_header e
              ON a.nim = e.nim
WHERE  a.kd_dosen = 'D001'
GROUP  BY a.nim  

最佳答案

正如错误所示,您需要在子查询中使用 GROUP BY。

试试这个

   SELECT a.nim,
   b.nama_mahasiswa,
   c.j_sks,
   b.jurusan,
   b.kelas_program,
   e.status
 FROM   tbl_dosen_wali a
   LEFT JOIN tbl_mahasiswa b
          ON a.nim = b.nim
   LEFT JOIN (SELECT k.nim,
                     k.kd_jadwal,
                     Sum(l.jum_sks) AS j_sks
              FROM   tbl_perwalian_detail k
                     LEFT JOIN (SELECT x.kd_jadwal,
                                       y.jum_sks
                                FROM   tbl_jadwal x
                                       LEFT JOIN tbl_mk y
                                              ON x.kd_mk = y.kd_mk) AS l
                            ON k.kd_jadwal = l.kd_jadwal
                            GROUP  BY k.nim 
                            ^^^^^^^^^^^^^^^^
                           ) c
          ON a.nim = c.nim
   LEFT JOIN tbl_perwalian_header e
          ON a.nim = e.nim
 WHERE  a.kd_dosen = 'D001'
 GROUP  BY a.nim  

关于php - 组列与无组列混合时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26749879/

相关文章:

PHP:str_replace多种情况

php - 修改后的先序树遍历中的路径

php - php 中 num_rows() 的 mysql 行数可靠吗?

php - 如何解析php中的动态_POST变量

javascript - JQuery $.post() 与数组和/或接收数组不起作用

sql - 当比较值由两个单独的字段组合时,是否可以使用单个 SQL 获取表中的最小(最大)行?

mysql - SQL - 使用非聚合表连接聚合表

MySQL:在搜索行之后 GROUP BY 是否有效?

php - MySQL 查询不会在 PHP 脚本中执行,但在 MySQL Workbench 中运行良好

php - 使用 MySQLi 和 PHP 的 HTML 表格