Postgres SQL 查询未识别列
Postgres SQL query doesn't identify the column
我的查询有一个大问题,出于某种原因,我无法使其中一个 WHERE 子句起作用。
这是我的 SQL:
SELECT COUNT(*) FROM "diets" JOIN "meals" on "idDiet" = "dietId"
WHERE kcal != 0 AND "diets.createdAt" > '2016-10-2'
GROUP BY "userIdUser" HAVING count(*) >= 5;
我的错误:
ERROR: column "diets.createdAt" does not exist
我对两个表的方案:
知道我必须做什么才能使此查询正常工作吗?非常感谢,如果需要更多信息,请告诉我。
你的引述有误:
SELECT COUNT(*)
FROM "diets" JOIN
"meals"
ON "idDiet" = "dietId"
WHERE kcal <> 0 AND "diets"."createdAt" > '2016-10-2'
GROUP BY "userIdUser"
HAVING count(*) >= 5;
双引号围绕 标识符。一个合格的列引用,例如 diets.createdAt 由两个标识符组成,因此每个标识符都需要有引号(如果有的话)。
否则,您指的是名称为 "diets.createdAt"
的列。也就是说,列名中会有一个句点。
SELECT COUNT(*) FROM diets a JOIN meals b on a.idDiet = b.dietId
WHERE a.kcal <> 0 AND a.createdAt > '2016-10-2'
GROUP BY a.userIdUser HAVING count(*) >= 5;
我的查询有一个大问题,出于某种原因,我无法使其中一个 WHERE 子句起作用。
这是我的 SQL:
SELECT COUNT(*) FROM "diets" JOIN "meals" on "idDiet" = "dietId"
WHERE kcal != 0 AND "diets.createdAt" > '2016-10-2'
GROUP BY "userIdUser" HAVING count(*) >= 5;
我的错误:
ERROR: column "diets.createdAt" does not exist
我对两个表的方案:
知道我必须做什么才能使此查询正常工作吗?非常感谢,如果需要更多信息,请告诉我。
你的引述有误:
SELECT COUNT(*)
FROM "diets" JOIN
"meals"
ON "idDiet" = "dietId"
WHERE kcal <> 0 AND "diets"."createdAt" > '2016-10-2'
GROUP BY "userIdUser"
HAVING count(*) >= 5;
双引号围绕 标识符。一个合格的列引用,例如 diets.createdAt 由两个标识符组成,因此每个标识符都需要有引号(如果有的话)。
否则,您指的是名称为 "diets.createdAt"
的列。也就是说,列名中会有一个句点。
SELECT COUNT(*) FROM diets a JOIN meals b on a.idDiet = b.dietId
WHERE a.kcal <> 0 AND a.createdAt > '2016-10-2'
GROUP BY a.userIdUser HAVING count(*) >= 5;