Ricardo Fragoso 0 Posted May 5, 2020 Report Share Posted May 5, 2020 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. Link to post Share on other sites
antseq 91 Posted May 5, 2020 Report Share Posted May 5, 2020 (edited) 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 May 5, 2020 by antseq Link to post Share on other sites
Ricardo Fragoso 0 Posted May 5, 2020 Author Report Share Posted May 5, 2020 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. Link to post Share on other sites
pc.cesar 15 Posted August 11, 2020 Report Share Posted August 11, 2020 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 Link to post Share on other sites
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now