Consulta no MySQL - Buscando menor Preço
Boa tarde, tudo bem?
Estou tendo dificuldades em criar uma consulta no banco de dados MySQL para buscar dígamos vários produtos ao mesmo tempo com seus respectivos menores preços. Por exemplo, quero consultar os produtos Pro1 e Pro2 com os códigos 5555 e 6666, já procurando qual deles tem o menor preço.
TABELA: produtos
id ---- nome ---- codigo
1 ----- Pro1 ----- 5555
2 ----- Pro2 ----- 6666
3 ----- Pro3 ----- 7777
TABELA: lojas
id ---- nome
1 ----- Dália
2 ----- Desco
3 ----- Bergamaschi
TABELA: produtos_precos
id ---- id_produto ---- preco ---- id_loja
1 ---------- 1 ----------- 29,90 ------ 1
2 ---------- 1 ----------- 25,90 ------ 2
3 ---------- 1 ----------- 23,90 ------ 3
4 ---------- 2 ----------- 32,90 ------ 1
5 ---------- 2 ----------- 35,90 ------ 2
6 ---------- 2 ----------- 43,90 ------ 3
7 ---------- 3 ----------- 12,90 ------ 1
8 ---------- 3 ----------- 13,40 ------ 2
9 ---------- 3 ----------- 15,20 ------ 3
SELECT * FROM produtos WHERE codigo IN (5555, 6666)
O SQL acima retornaria retornaria os dois produtos dos códigos citados. A pergunta é como fazer para na mesma consulta buscar o menor preço de cada produto (vindo da tabela produtos_precos).
Estou tendo dificuldades em criar uma consulta no banco de dados MySQL para buscar dígamos vários produtos ao mesmo tempo com seus respectivos menores preços. Por exemplo, quero consultar os produtos Pro1 e Pro2 com os códigos 5555 e 6666, já procurando qual deles tem o menor preço.
TABELA: produtos
id ---- nome ---- codigo
1 ----- Pro1 ----- 5555
2 ----- Pro2 ----- 6666
3 ----- Pro3 ----- 7777
TABELA: lojas
id ---- nome
1 ----- Dália
2 ----- Desco
3 ----- Bergamaschi
TABELA: produtos_precos
id ---- id_produto ---- preco ---- id_loja
1 ---------- 1 ----------- 29,90 ------ 1
2 ---------- 1 ----------- 25,90 ------ 2
3 ---------- 1 ----------- 23,90 ------ 3
4 ---------- 2 ----------- 32,90 ------ 1
5 ---------- 2 ----------- 35,90 ------ 2
6 ---------- 2 ----------- 43,90 ------ 3
7 ---------- 3 ----------- 12,90 ------ 1
8 ---------- 3 ----------- 13,40 ------ 2
9 ---------- 3 ----------- 15,20 ------ 3
SELECT * FROM produtos WHERE codigo IN (5555, 6666)
O SQL acima retornaria retornaria os dois produtos dos códigos citados. A pergunta é como fazer para na mesma consulta buscar o menor preço de cada produto (vindo da tabela produtos_precos).
Rafael Casanova
Curtidas 0
Melhor post
Luiz Santos
15/05/2017
Boa noite Rafael.
O menor preço independente da loja?
Se for, é asim:
Ai caso você queira apenas aqueles 2 produtos, você pode fazer um INNER jJOIN com a tabela produtos, e usar o seu where
Espero ter ajudado.
Grande abraço
O menor preço independente da loja?
Se for, é asim:
SELECT id_produto, MIN(preco) AS MENOR_PRECO FROM produtos_precos GROUP BY id_produto
Ai caso você queira apenas aqueles 2 produtos, você pode fazer um INNER jJOIN com a tabela produtos, e usar o seu where
WHERE codigo IN (5555, 6666)
Espero ter ajudado.
Grande abraço
GOSTEI 2
Mais Respostas
Rafael Casanova
15/05/2017
Poxa, ajudou muito, obrigado Luiz Fernando, o engraçado que havia tentado fazer algo semelhante, só que não funcionava.
Acho que estava cometendo algum erro de sintaxe =D
Acho que estava cometendo algum erro de sintaxe =D
GOSTEI 0
Luiz Santos
15/05/2017
Rafael.
É normal.
As vezes ficamos tão bitolados no código que é preciso alguém de fora pra mostrar um erro qualquer que estamos deixando passar.
Acontece com todo mundo, independente da linguagem.
Grande abs
É normal.
As vezes ficamos tão bitolados no código que é preciso alguém de fora pra mostrar um erro qualquer que estamos deixando passar.
Acontece com todo mundo, independente da linguagem.
Grande abs
GOSTEI 0