我的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"];
}
答案 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