[quote=pmlm]Quando tens group by, todas as colunas têm de ser funções de group (min, max, count,…) ou estar no próprio group by.
SELECT MIN(s.valor) as valor, sm.nome // não podes ter p.* ou TODAS as colunas de p teriam de estar no GROUP BY
FROM supermercado_produto s, produto p, super_mercado sm
WHERE (sm.idsuper_mercado = s.idsuper_mercado AND s.idsuper_mercado = 1 AND s.idproduto = p.idproduto AND s.valor > 0)
or (sm.idsuper_mercado = s.idsuper_mercado AND s.idsuper_mercado = 2 AND s.idproduto = p.idproduto AND s.valor > 0)
GROUP BY s.idproduto ORDER BY idcategoria,idproduto;
[/quote]
então como posso fazer uma sql para eu saber os dados completos de todas as tabelas, me informando entre os mercados que tem aquele produto me mostre o menor valor e as características do produto… isso para todos os produtos…
ex: tenho o produto Refrigerante Coca cola que esta na tabela produto
tenho tbm o Arroz Tio João
tenho a Cerveja Skol
e assim por diante…
na tabela super_mercado tenho idsuper_mercado e nome
na tabela supermercado_produto é o relacionamento entre a tabela produto e super_mercado (idsuper_mercado, idproduto, valor), que é onde fica registrado os preços desses produtos pra cada supermercado. sendo que nem todos os produtos estão em todos os supermercados…
então eu preciso fazer uma sql, que me mostre todos os produtos, mas somente mostre onde o produto em questão esta mais barato, com as informaçoes completas das 3 tabelas,
quero que me mostre idsupermercado, nome do supermercado, valor do produto, nome do produto, marca, fabricante etc…
alguem para ajudar?
abraço