SQL 语法错误分析:LEFT JOIN 和 COUNT 函数使用错误
SELECT t1.name, t1.riqi, COUNT(DISTINCT t1.app) AS "用现金买了多少种商品", COUNT(t1.app) AS "用现金买多少个商品", COUNT(DISTINCT t1.app) AS "累计买多少种商品", COUNT(t1.app) AS "累计个商品" FROM TEST2 AS t1 LEFT JOIN TEST2 AS t2 ON t1.name = t2.name AND t1.riqi >= t2.RIQI WHERE t1.pay = '1' GROUP BY t1.name, t1.riqi; 该查询语句中存在两个语法错误: 1. 在 COUNT(DISTINCT t2.app) AS 累计买多少种商品, COUNT(t2.app) AS 累计个商品 这两行中,t2.app 是在 JOIN 子句中引用的,应该在 SELECT 子句中用 t1.app 代替。 2. 在 JOIN 子句中,t1 和 t2 之间的条件应该用 ON 关键字连接,而不是用 WHERE 关键字。 正确的 SQL 查询语句应该是: SELECT t1.name, t1.riqi, COUNT(DISTINCT t1.app) AS "用现金买了多少种商品", COUNT(t1.app) AS "用现金买多少个商品", COUNT(DISTINCT t1.app) AS "累计买多少种商品", COUNT(t1.app) AS "累计个商品" FROM TEST2 AS t1 LEFT JOIN TEST2 AS t2 ON t1.name = t2.name AND t1.riqi >= t2.RIQI WHERE t1.pay = '1' GROUP BY t1.name, t1.riqi;
原文地址: https://www.cveoy.top/t/topic/pNcB 著作权归作者所有。请勿转载和采集!