PHP/MySQL 在 WHERE/AND 子句中获取最大日期

标签 php mysql

我正在我的网络应用程序中尝试这样做:

$data = date("Y-m-d", strtotime("-15 days", strtotime(date("Y-m-d"))));

$sql = "SELECT DISTINCT(Cliente.idCliente), Cliente.nomeCliente, Cliente.email, Cliente.cpf
        FROM Cliente, Pontuacao 
        WHERE Cliente.idCliente = Pontuacao.idCliente 
        AND DATE_FORMAT(MAX(Pontuacao.timestampPontuacao), '%Y-%m-%d')='".$data."' 
        AND Cliente.receberMensagens=1 
        AND Cliente.numEstabelecimento='".$reg['numEstabelecimento']."'";

我直接在 phpMyAdmin 中测试了查询,就像这样:

SELECT DISTINCT(Cliente.idCliente), Cliente.nomeCliente, Cliente.email, Cliente.cpf 
FROM Cliente, Pontuacao 
WHERE Cliente.idCliente = Pontuacao.idCliente 
AND DATE_FORMAT(MAX(Pontuacao.timestampPontuacao), '%Y-%m-%d')='2016-03-28' 
AND Cliente.receberMensagens=1 
AND Cliente.numEstabelecimento=2

但是,我收到以下错误:

#1111 - Invalid use of group function

我知道这是因为这条线

AND DATE_FORMAT(MAX(Pontuacao.timestampPontuacao), '%Y-%m-%d')='2016-03-28'

但我不知道如何解决这个问题。我该如何解决?

最佳答案

SELECT Cliente.idCliente, Cliente.nomeCliente, Cliente.email, Cliente.cpf 
FROM Cliente
JOIN Pontuacao ON Cliente.idCliente = Pontuacao.idCliente 
WHERE Cliente.receberMensagens=1 
AND Cliente.numEstabelecimento=2
GROUP BY Cliente.idCliente, Cliente.nomeCliente, Cliente.email, Cliente.cpf 
HAVING DATE_FORMAT(MAX(timestampPontuacao)), '%Y-%m-%d') = '2016-03-28'

关于PHP/MySQL 在 WHERE/AND 子句中获取最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37486779/

相关文章:

javascript - Xampp + Php Websocket最大执行时间错误

php - 使用PHP检测哪个htaccess用户登录?

php - 在 php 中将 float 组作为 HTTP POST 请求发送

php - 无法使用不同的方法连接到 mysql

mysql - 如何在 UPDATE 中更新具有相同 prodID 的行?

php - 在 PHP 中更改来自 MySQL 的项目的顺序

javascript - 在 Javascript 中从 PHP 操作 JSON

php - 从数据库获取(Scheduler + yii)

mysql - 我可以在 mysql 中使用带有 WHERE 子句的 REPLACE 吗?

mysql - 如何从 PHPMyAdmin 访问另一个数据库中的内容