SQL SELECT COUNT GROUP BY - 错误

时间:2015-06-08 13:46:36

标签: mysql sql count

我的sql语句有问题,我有两个表(ogrenci和taksit)。我试图计算他们为零的taksits的数量,并按KategoriID.KategoriID将他们分组在ogrenci和taksit表中,而odendi只在taksit表中。我找不到错误的位置。 我的sql如下

$sql= mysql_query("SELECT KategoriID, ad, odendi, COUNT(odendi) FROM ogrenci INNER JOIN taksit ON ogrenci.KategoriID = taksit.KategoriID and WHERE odendi=0 GROUP BY KategoriID");
    while($listele = mysql_fetch_array($sql)) 
    {

        $KategoriID = $listele['KategoriID'];
        $ad = $listele["ad"];
        $odendi = $listele["odendi"];

}

4 个答案:

答案 0 :(得分:1)

JOIN不正确,加上WHERE子句不正确。试试这个:

$sql= mysql_query("SELECT KategoriID, ad, odendi, COUNT(odendi) FROM ogrenci INNER JOIN taksit ON ogrenci.KategoriID = taksit.KategoriID WHERE odendi=0 GROUP BY KategoriID");

以下是格式化的SQL,以便于阅读:

  SELECT t.KategoriID, 
         ad, 
         t.odendi, 
         COUNT(t.odendi) 
  FROM ogrenci o
  INNER JOIN taksit t ON o.KategoriID = t.KategoriID 
  WHERE t.odendi = 0 
  GROUP BY t.KategoriID

答案 1 :(得分:0)

你错过了这里的语法,在第二个表名之后不应该有$results = ParseCloud::run("aCloudFunction", array("from" => "php")); 。语法应为:

and

所以正确的查询将是:

SELECT ....
FROM Table1 INNER JOIN Table2 ON ....

答案 2 :(得分:0)

简单规则:永远不要在from子句中使用逗号。始终使用明确的join s:

SELECT t.KategoriID, ad, odendi, COUNT(odendi)
FROM taksit t INNER JOIN
     ogrenci o
     ON o.KategoriID = t.KategoriID 
WHERE odendi = 0
GROUP BY t.KategoriID;

您还应该使用表别名并限定所有列名称。

答案 3 :(得分:0)

我不明白为什么如果你要分组,你不要在组列表中添加所有列...试试这个:

SELECT ogrenci.KategoriID, ad, odendi, COUNT(odendi) 
FROM ogrenci INNER JOIN 
  taksit ON ogrenci.KategoriID = taksit.KategoriID 
WHERE odendi=0 
GROUP BY KategoriID, ad, odendi