2012-05-08 69 views
0

我需要从mysql表中的某个特定列中找到最大值,其中另一列的值等于某个值。但是,对于我正在使用的查询,我不断收到显示的消息和SQL错误。我的查询是aS如下:SQL MAX与WHERE子句结合使用

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

有什么建议吗?当你有一个聚集conditon

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

只能使用HAVING条款:

+0

请发布错误信息。 –

回答

4

您还缺少一个表名:

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

您应该使用的WHERE代替HAVING条款。

+2

另外,'FROM myTable'。 –

+0

哦谢谢:)错字错误..grrr –

0

您FROM子句和where子句需要。 having子句用于组过滤器。你没有一个一组一组的条款,所以没有理由写一个条款。如果您想从选择表被称为“MyTable的”,然后将查询如下:

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

。注意,不需要各地child_id的paranthesis。请阅读SQL和MySQL教程以获取更多信息,您的生活将会更容易。