我尝试在MySQL查询中添加COUNT
,因为我需要所有行的数量。
原单:
SELECT a.*, b.device_name, FROM ( SELECT * FROM qslist ORDER BY ID DESC LIMIT 500) a JOIN device b ON a.device = b.ID
NEW:
SELECT a.*, b.device_name, a.COUNT(ID) AS out FROM ( SELECT * FROM qslist ORDER BY ID DESC LIMIT 500) a JOIN device b ON a.device = b.ID
遗憾的是,新查询未执行,显示以下错误消息:
#1064 - 您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以便使用接近' out FROM(SELECT * FROM qslist ORDER BY ID DESC LIMIT 500)a JOIN设备b on a'在第1行
这里有什么问题?
答案 0 :(得分:2)
out
是MySQL中的保留字。您可以将其转义或命名为其他内容:
SELECT a.*, b.device_name, COUNT(a.ID) AS cnt
FROM ( SELECT * FROM qslist ORDER BY ID DESC LIMIT 500) a JOIN
device b
ON a.device = b.ID;
此外,a.
位于id
旁边,而不是count()
。
修复了语法错误。
此查询不太可能正在执行您想要的操作,因为它只返回一行。 count()
使其成为没有group by
的聚合查询。但是,您的问题是关于语法错误,而不是您未说明目的的正确查询。 (如果你想修复查询,我建议用样本数据和期望的结果提出另一个问题。)
答案 1 :(得分:0)
你的伯爵会为你提供一排。但是a。*和b.device_name可能有多行。找到计数你需要有一个更好的单独查询。