gpt4 book ai didi

mysql - "TableB.Date"中的未知列 'having clause'

转载 作者:行者123 更新时间:2023-11-29 08:03:47 24 4
gpt4 key购买 nike

当我按如下方式查询 mysql 数据库时,出现如标题所示的错误。不知道为什么,问题出在 group by 语句上,但我尝试了几种变体,但似乎没有任何效果。

SELECT TableA.Name, DATE_FORMAT(TableB.Date, '%b %d %Y') AS "Date", COUNT(TableB.TableBID) 
FROM TableA
INNER JOIN TableB
ON TableA.TableAID = TableB.TableAID
WHERE TableA.Name = "john"
GROUP BY DATE(TableB.Date)
HAVING DATE_FORMAT(TableB.Date, '%b %d %Y') >= "Apr 12 2014"
ORDER BY MAX(TableB.TableAID) ASC;

最佳答案

您应该在 group by 之前使用 where 条件进行比较。而且,您应该对日期而不是字符串进行比较:

SELECT a.Name, DATE_FORMAT(b.Date, '%b %d %Y') AS "Date", COUNT(b.TableBID) 
FROM TableA a INNER JOIN
TableB b
ON a.TableAID = b.TableAID
WHERE a.Name = 'john' AND
b.date >= '2014-04-12'
GROUP BY DATE(b.Date)
ORDER BY MAX(b.TableAID) ASC;

您想要在 where 中进行过滤的原因是它可以减少馈送到聚合算法的数据的大小。您想要使用日期而不是字符串的原因是因为您不希望“三月”位于“四月”之后。请注意,我还将日期常量上的分隔符更改为单引号。

关于mysql - "TableB.Date"中的未知列 'having clause',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23136477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com