[RESOLVIDO] Consulta em três tabelas [RESOLVIDO]

6 respostas
101574

Galera,

Estou precisando criar uma consulta, onde tenho.

Tabela produto.
id
nome

Tabela empresa.
id
nome
cod_atividade

Tabela produtoEmpresa
id
cod_empresa
cod_produto
preço

Preciso pesquisar pelo nome do produto, o preço do produto, nas empresas que pertencem a atividade 1(exemplo);

Não tenho a mínima ideia.

Flw. Valeu!

6 Respostas

Xmio

Imagino eu que na tabela de produtoempresa o cod_produto e cod_empresa sejam o seus relacionamentos entre as tabelas

select prod.nome, prodemp.preco from produto prod, produtoEmpresa prodemp where prod.id = prodemp.cod_produto and prodemp.cod_empresa in (select id from empresa where cod_atividade = 1)

ViniGodoy

SELECT DISTINCT p.* FROM produtoEmpresa pe INNER JOIN Produto p ON pe.cod_Produto = p.id INNER JOIN Empresa e ON pe.cod_Empresa = e.id AND e.cod_Atividade = 1

Agora é testar o que roda mais rápido no seu banco.

101574

Cara,
Ficou perfeito!

Valeu mesmo.

101574

Obrigado pela dica, ViniGodoy.

Mas não rodou. Abraço.

ViniGodoy

Você viu que revisei o código ali?

Eu geralmente prefiro usar JOINs. A maior parte dos bancos tem um suporte melhor.
Outra recomendação é evitar a cláusula IN.

O código que passei faz as duas coisas. Se não rodar, posta o erro que te ajudo a corrigir.

Melhor que ter uma solução para um problema, é ter duas. :wink:

101574

Poww cara, eu também estou preferindo JOIN no lugar de IN.

Eu nem tinha visto, rodou perfeito.
Só que está mais lento.rsrs.

0.07 sec com IN
0.10 sec com JOIN

Valeus!!!

Criado 21 de janeiro de 2013
Ultima resposta 21 de jan. de 2013
Respostas 6
Participantes 3