Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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 如何选择(计数+分组依据)和加入_Mysql - Fatal编程技术网

Mysql 如何选择(计数+分组依据)和加入

Mysql 如何选择(计数+分组依据)和加入,mysql,Mysql,我正在尝试选择我拥有的数据库,但当我尝试选择按某个列中的id按表组中的某个列显示计数时,我被卡住了 以下是我尝试过的查询: SELECT * , SELECT COUNT((DISTINCT daftar.id_daftar) group by daftar.id_kelas) AS Count FROM kelas INNER JOIN matkul

我正在尝试选择我拥有的数据库,但当我尝试选择按某个列中的id按表组中的某个列显示计数时,我被卡住了

以下是我尝试过的查询:

SELECT * , SELECT COUNT((DISTINCT daftar.id_daftar) group by daftar.id_kelas) AS Count
                            FROM kelas
                            INNER JOIN matkul
                            ON kelas.id_matkul = matkul.id_matkul
                            INNER JOIN proker
                            ON kelas.id_proker = proker.id_proker order by nama_matkul
daftar表

+-----------+--------+----------+---------------------+
| id_daftar | npm    | id_kelas | tgldaftar           |
+-----------+--------+----------+---------------------+
|        26 | admin3 |        0 | 2019-06-09 13:04:58 |
|        27 | admin3 |        0 | 2019-06-09 13:07:02 |
|        28 | admin3 |        0 | 2019-06-09 13:07:41 |
|        29 | admin3 |        0 | 2019-06-09 13:08:17 |
|        30 | admin3 |        7 | 2019-06-09 14:00:54 |
|        31 | admin3 |        6 | 2019-06-09 15:34:00 |
+-----------+--------+----------+---------------------+
凯拉斯表

+----------+-----------+-----------+------------+------------+-------+---------+--------+------------+----------+------------+-----------+
| id_kelas | id_proker | id_matkul | nama_kelas | tgl        | jam   | ruangan | status | buka_tgl   | buka_jam | keterangan | kapasitas |
+----------+-----------+-----------+------------+------------+-------+---------+--------+------------+----------+------------+-----------+
|        0 |         2 |         1 | nini       | 2019-06-23 | 17.00 | -       | 3      | 2019-06-23 | 20.00    | Baus       | 3         |
|        6 |         2 |         3 | B          | 2019-06-22 | 20.00 | bb      | 2      | 2019-06-27 | 12.00    | kk         | 30        |
|        7 |         1 |         1 | Aduh       | 2019-06-14 | 23.00 | nddm    | 2      | 2019-06-29 | 20.00    | oke        | 1         |
+----------+-----------+-----------+------------+------------+-------+---------+--------+------------+----------+------------+-----------+
表matkul

+-----------+------------------+
| id_matkul | nama_matkul      |
+-----------+------------------+
|         1 | akuntansi biayaz |
|         3 | ewean            |
|         5 | ewe              |
|         6 | tes              |
|         7 | Tesd             |
+-----------+------------------+
表普鲁克

+-----------+---------------------------+
| id_proker | nama_proker               |
+-----------+---------------------------+
|         1 | Bebelac                   |
|         2 | Mentoring Accounting Club |
+-----------+---------------------------+
以下是预期结果示例:

有人能帮我吗?
如果您需要每个daftar.id\u kelas的不同计数,感谢您的关注

SELECT  daftar.id_kelas COUNT(DISTINCT daftar.id_daftar) AS Count
FROM kelas
INNER JOIN matkul  ON kelas.id_matkul = matkul.id_matkul
INNER JOIN proker  ON kelas.id_proker = proker.id_proker 
group by daftar.id_kelas
如果需要行和计数,那么可以使用内部联接子查询进行计数

select *,  t.count
from  kelas 
inner join  (
   SELECT  daftar.id_kelas, COUNT(DISTINCT daftar.id_daftar) AS Count
   FROM kelas
   INNER JOIN matkul  ON kelas.id_matkul = matkul.id_matkul
   INNER JOIN proker  ON kelas.id_proker = proker.id_proker
   group by daftar.id_kelas
) t on t.id_kelas = kelas.id_kelas 
任何查看模式的方法似乎都需要

  SELECT  daftar.id_kelas COUNT(*) AS Count
  FROM daftar 
  INNER JOIN kelas on daftar.id_kelas = kelas.id_kelas 
  INNER JOIN matkul  ON kelas.id_matkul = matkul.id_matkul
  INNER JOIN proker  ON kelas.id_proker = proker.id_proker 
  group by daftar.id_kelas
如果需要行和计数,那么可以使用内部联接子查询进行计数

  select *,  t.count
  from  daftar  
  inner join  (
     SELECT  daftar.id_kelas COUNT(*) AS Count
      FROM daftar 
      INNER JOIN kelas on daftar.id_kelas = kelas.id_kelas 
      INNER JOIN matkul  ON kelas.id_matkul = matkul.id_matkul
      INNER JOIN proker  ON kelas.id_proker = proker.id_proker 
  group by daftar.id_kelas
  ) t on t.id_kelas = daftar.id_kelas 

我不只是想清楚,但也选择其他内部连接表,我更新我的预期结果顺便说一句。。你的代码有错误,你的SQL语法有错误;似乎错误就在第16行:“group by daftar.id_kelas t on t.id_kelas=kelas”您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,了解在第8i行的“group by daftar.id_kelas t on t.id_kelas=kelas.id_kelas LIMIT 0,25”附近使用的正确语法我没有限制。。在我的问题中。。因此,请尝试更新您的问题,并向我展示您真正使用的实际查询。您也在引用daftar表,但在FROM和JOIN子句中未提及此内容。。最好检查您的原始查询。。您确定此查询有效吗。。删除选择*??为了获得预期的结果,您应该为实际表模式添加一个清晰的数据样本,而不仅仅是一个指向图像的链接