我的sql语句有问题,我有两个表(ogrenci和taksit)。我试着计算出在零的地方,按KategoriID.KategoriID对它们进行分组,它们都是在ogrenci和taksit表中,而odendi只在收表中。我找不到错误在哪里。我的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"];}
发布于 2015-06-08 13:48:47
简单规则:永远不要在from子句中使用逗号。始终使用显式joins:
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;您还应该使用表别名并限定所有列名。
发布于 2015-06-08 13:47:51
联接不正确,加上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发布于 2015-06-08 13:48:11
您忽略了这里的语法,在第二个表的名称之后不应该有一个and。语法应该是:
SELECT ....
FROM Table1 INNER JOIN Table2 ON ....因此,正确的查询将是:
SELECT KategoriID, ad, odendi, COUNT(odendi)
FROM ogrenci INNER JOIN
taksit ON ogrenci.KategoriID = taksit.KategoriID
WHERE odendi=0
GROUP BY KategoriIDhttps://stackoverflow.com/questions/30710841
复制相似问题