0

我需要从 mysql 表中的一个特定列中找到最大值,其中另一列的值等效于某个值。但是,通过我正在使用的查询,我不断收到一条显示 SQL 错误的消息。我的查询如下:

SELECT MAX(message_id) AS top_message HAVING(child_id) = '".$message_id[$i]."'

有什么建议么?

4

3 回答 3

4

您还缺少一个表名:

SELECT MAX(message_id) AS top_message FROM tablename WHERE child_id = '".$message_id[$i]."'
于 2012-05-08T00:39:35.087 回答
1

您应该使用WHERE代替HAVING子句:

SELECT MAX(message_id) AS top_message 
FROM tablename 
WHERE child_id = '".$message_id[$i]."'

当你有一个聚合条件时使用 onlyHAVING子句。

于 2012-05-08T00:38:49.190 回答
0

您需要一个 from 子句和一个 where 子句。have 子句用于组过滤器。您没有 group by 子句,因此没有理由编写 having 子句。如果您要从中选择的表称为“MyTable”,那么您的查询如下:

SELECT MAX(message_id) AS top_message
FROM MyTable
WHERE child_id = '".$message_id[$i]."'

请注意,不需要 child_id 周围的括号。请阅读 SQL 和 MySQL 教程以获取更多信息,您的生活会轻松很多。

于 2012-05-08T00:55:27.103 回答