Unir 2 tabelas

Firebird

19/05/2014

Bom dia !!
Tenho 2 tabela saida e produto
Saida PRODUTO
ID_SAIDA (PK) ID_PRODUTO(PK)
id_produto(FK) produto
qtde_saida codigo
motivo_saida qtde_estoque
data_saida id_grupo(FK)


Estou fazendo o << Select * from Saida where data_Saida between :data1 and :data2 order by data_Saida >>
que me retorna o seguinte valor <<ID_SAIDA ID_PRODUTO QTDE_SAIDA MOTIVO_SAIDA >> gostaria que retorna-se também o nome do produto seria possivel ?


Victor Pereira

Victor Pereira

Curtidas 0

Melhor post

Marisiana Battistella

Marisiana Battistella

20/05/2014

Sim, você pode utilizar quantas tabelas você quiser, desde que vc liguei as chaves estrangeiras com as chaves primárias corretamente.
Você possui uma tabela Grupo?
Imagino que tenha um atributo (FK) na tabela produto que possa identificar o grupo que aquele produto pertence. É isso?
GOSTEI 2

Mais Respostas

Marisiana Battistella

Marisiana Battistella

19/05/2014

Olá Victor!
Como boa prática, recomendo que nunca utilize "Select * " nos teus SQLs, sempre informe os nomes das colunas com as informações que vc precisa que o SQL retorne.

Você pode fazer o SQL assim:
select s.id_saida,
            s.data_saida,
            p.id_produto,
            p.produto,
            s.qtde_saida,
            s.motivo_saida
from saida  s
join produto p
on s.id_produto = p.id_produto
where s.data_Saida between :data1 and :data2
order by s.data_Saida
GOSTEI 1
Marisiana Battistella

Marisiana Battistella

19/05/2014

Pra quem quiser entender melhor, esta matéria possui uma explicação bem interessante sobre o uso de JOINS [url]http://sqlfromhell.wordpress.com/2009/09/15/trabalhando-com-join/[/url]
GOSTEI 1
Victor Pereira

Victor Pereira

19/05/2014

muito obrigado pela ajuda
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

19/05/2014

Por nada!
Era disso que você precisava?
Se tiver mais alguma dúvida, fique a vontade para falar...
GOSTEI 1
Victor Pereira

Victor Pereira

19/05/2014

Seria possível eu fazer um select com 3 tabelas ?

Eu gostaria de escolher o grupo e depois as datas e mostrar o produto?

Esse código escolho, as datas e mostra os produtos......

select s.id_saida,s.data_saida,p.id_produto,p.produto,p.codigop, s.qtde_saida,s.motivo_saida from saida s
join produto p on s.id_produto = p.id_produto where s.data_Saida between :data1 and :data2 order by s.data_Saida
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

19/05/2014

Se a ligação entre as tabelas for da forma como questionei, você terá que fazer assim:

select s.id_saida,
            s.data_saida,
            p.id_produto,
            p.produto,
            s.qtde_saida,
            s.motivo_saida
from saida  s
join produto p
on s.id_produto = p.id_produto
join grupo g
on p.id_grupo = g.id_grupo
where s.data_Saida between :data1 and :data2
and g.id_grupo = :códigogrupo
order by s.data_Saida

GOSTEI 2
Victor Pereira

Victor Pereira

19/05/2014

obrigado pela ajuda !!!
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

19/05/2014

Por nada! =)
GOSTEI 0
POSTAR