Consulta sql com DESC LIMIT [RESOLVIDO]

Olá pessoal,

To com uma dúvida com uma consulta SQL!
Seguinte, tenho as tabelas ‘produto’ 1 => N ‘preco’. Preciso consultar todos os produtos INNER JOIN com o preço atual (consigo isso com ORDER BY dataHoraCadastro DESC LIMIT 1), isso funciona para consulta de um produto em específico, o problema é que quando faço isso para todos os produtos, a condição ‘ORDER BY dataHoraCadastro DESC LIMIT 1’ é feita para o resultado final me resultando apenas uma tupla… e o que preciso é que essa condição seja feita para cada produto, me retornando todos os produtos cada um com seu preço atual.

Alguém pode me ajudar?

SELECT produto.codigo, nome, custo, venda from produto 
 inner join preco on preco.produto_codigo = produto.codigo 
ORDER BY dataHoraCadastro DESC LIMIT 1

SOLUÇÃO:

"SELECT codigo, if(taxaEntrega = 1,concat(nome,' - ',descricao),nome) as nome, "
+"(SELECT custo from preco where preco.produto_codigo = produto.codigo ORDER BY dataHoraCadastro DESC LIMIT 1) as custo, "
+"(SELECT venda from preco where preco.produto_codigo = produto.codigo ORDER BY dataHoraCadastro DESC LIMIT 1) as venda "
+"from produto"

Remove o “LIMIT 1”. Isso limita a consulta a somente um registro, mesmo que existam vários.

[]'s

[quote=Adelar]Remove o “LIMIT 1”. Isso limita a consulta a somente um registro, mesmo que existam vários.

[]'s[/quote]

Não posso, pois esse LIMIT 1 tem que existir pra que ele pegue só o primeiro registro da tabela ‘preco’ referente a um produto… o problema é que isso deve ocorrer para cada produto e não no resultado final

Você quer o ultimo preco cadastrado daquele produto?
Nesse caso vocÊ teria que pegar o ultimo registro da tabela de preco para aquele produto.
Para isso eu usaria o MAX agrupado por codigo do produto.

SELECT max(preco.dataHoraCadastro), preco.valor, produto.codigo from produto
inner join preco on preco.produto_codigo = produto.codigo
GROUP BY produto.codigo, preco.valor

espero ter ajudado