Olá galera, eu estou tentando fazer uma query para resgatar a maior data de uma tabela e seu respectivo id, porem o id nao vem o maior e sim o primeiro. Alguem sabe o que estou fazendo de errado:
SELECT max(data), id_horario
FROM horario
WHERE data <= curdate();
Obrigado AbelBueno, mas na verdade eu quero a maior data e horario antes de hoje mas fazendo da forma que me mostrou, incluido na subquery a data eu ainda tenho 2 resultados. Pensei que tivesse alguma solucao sem ser com subquery. Vou tentar aqui seguindo o seu reciocinio e posto o resultado pra voce ver…
Olá parceiro! Tudo bom?
Neste exemplo eu consegui obter a maior data sem a necessidade da função max().
Teste a seguinte query e veja se atende a sua necessidade:
SELECT id, data FROM tabela ORDER BY data DESC LIMIT 1;
Eu fiz esse teste em uma tabela com mais de 1 milhão de registros e a resposta foi satisfatória.
[quote=paulochaves]Olá parceiro! Tudo bom?
Neste exemplo eu consegui obter a maior data sem a necessidade da função max().
Teste a seguinte query e veja se atende a sua necessidade:
SELECT id, data FROM tabela ORDER BY data DESC LIMIT 1;
Eu fiz esse teste em uma tabela com mais de 1 milhão de registros e a resposta foi satisfatória.[/quote]
Serviria sim se eu nao tivesse que resgatar o ultimo dia do ultimo horario de agora pra traz e nao de toda tabela. Eu resolvi com a quela query grandinha logo a cima. Mas vou entar aplicar a sua logica pois pode ficar melhor mesmo.