SQL MAX与WHERE子句一起使用

时间:2012-05-08 00:36:36

标签: php mysql

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

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

有什么建议吗?

3 个答案:

答案 0 :(得分:4)

您还缺少一个表名:

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

答案 1 :(得分:1)

您应该使用WHERE代替HAVING条款:

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

如果您有聚合条件,请仅使用HAVING子句。

答案 2 :(得分:0)

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

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

请注意,不需要围绕child_id进行修复。请阅读SQL和MySQL教程以获取更多信息,您的生活将更加轻松。