Jump to content
Ricardo Fragoso

Select duas tabelas

Recommended Posts

Ricardo Fragoso

Boa tarde,

Venho por este meio pedir a vossa ajuda se possível, pois estou com dificuldade neste select, sou principiante..

 

tabela de vendas:

id_venda, descricao, id_produto1, id_produto2, id_produto3

 

A tabela produtos é composta por:

id_produto, nome_produto

 

precisava de fazer um select que juntasse as duas tabelas e que me mostrasse o nome dos produtos, na tabela vendas, o id_produto1,2,3 corresponde sempre ao id_produto da tabela produtos.

fiz este: select a.descricao, b.nome_produto from vendas a, produtos b where a.id_produto1 = b.id_produto

 

Muito obrigado.

Share this post


Link to post
Share on other sites
antseq
24 minutos atrás, Ricardo Fragoso disse:

precisava de fazer um select que juntasse as duas tabelas e que me mostrasse o nome dos produtos, na tabela vendas, o id_produto1,2,3 corresponde sempre ao id_produto da tabela produtos.


fiz este: select a.descricao, b.nome_produto from vendas a, produtos b where a.id_produto1 = b.id_produto

 

viva,

a sua tabela de vendas, deixa muito a desejar... só podes vender 3 produtos...

geralmente as tabelas de vendas são algo deste tipo (id_venda, no_linha, id_produto) assim numa venda podes ter 1, 2, 3, 4, 5, ..., N produtos o que torna a aplicação muito mais robusta, como também a tarefa e ir buscar o nome do produto em cada linha.

uma vez que a sua tabela de vendas tem aquele formato... para ires buscar os 3 nomes de produtos, podes fazer algo assim:

select v.descricao, p1.nome_produto, p2.nome_produto, p3.nome_produto
from vendas v
left join produtos p1 on v.id_produto1 = p1.id_produto
left join produtos p2 on v.id_produto2 = p2.id_produto
left join produtos p3 on v.id_produto3 = p3.id_produto

cps

Edited by antseq

Share this post


Link to post
Share on other sites
Ricardo Fragoso
2 minutos atrás, antseq disse:

viva,

a sua tabela de vendas, deixa muito a desejar... só podes vender 3 produtos...

geralmente as tabelas de vendas são algo deste tipo (id_venda, no_linha, id_produto) assim numa venda podes ter 1, 2, 3, 4, 5, ..., N produtos o que torna a aplicação muito mais robusta, como também a tarefa e ir buscar o nome do produto em cada linha.

uma vez que a sua tabela de vendas tem aquele formato... para ires buscar os 3 nomes de produtos, podes fazer algo assim:


select v.descricao, p1.nome_produto, p2.nome_produto, p3.nome_produto
from vendas v
left join produtos p1 on v.id_produto1 = p1.id_produto
left join produtos p2 on v.id_produto2 = p2.id_produto
left join produtos p3 on v.id_produto3 = p3.id_produto

cps

Viva, boa tarde, 

Muito obrigado pela resposta. Este foi um exemplo da minha tabela. No meu caso o maximo de produtos a inserir são 8, nunca mais.

Sem duvida que como sugere é muito mais robusto e flexível.

Muito obrigado pela ajuda, funcionou na perfeição.

 

Share this post


Link to post
Share on other sites
pc.cesar

Não conhecendo a base de dados no formato utilizado a tabela é muito limitativa.

id_venda, descricao, id_produto1, id_produto2, id_produto3

mantendo a sua estrutura e não sabendo exactamente o que regista, precisa da 8 campos por cada ID_produto ou seja 8 * 8 = 64 campos quando em forma de tabela 8 campos + id_linha + id_venda 10 campos chegariam e 

descricao , quantidade, desconto, iva, preco unitario s/ iva, preco unitario c/ iva, preco total S/ iva ,preco total c/ iva 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.