Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá galera quero a ajuda de vcs num SELECT que eu estou fazendo no qual envolve 3 tabelas:
tb_itens_fund (Tabela de Intes Fundidos onde eu irei pegar a descrição do item e linkar o código)
tb_itens_fund.desc_fund
tb_itens_fund.cod_fund
tb_est_fund (Tabela do estoque de itens fundidos onde se houver no estoque aparece a quantidade correspodente na frente da descrição do item, linkado pelo código)
tb_est_fund.cod_item
tb_est_fund.kg
tb_est_fund.pcs
tb_transf (Tabela onde são gravadas as transferências de peças entre os setores, linkado pelo codigo porém so exibir o que ainda esta pendente(status=1) e o que for para o estoque de intes fundidos (destino='fundicao'))
tb_transf.cod_transf
tb_transf.qtde_kg
tb_transf.qtde_pcs
tb_transf.destino
tb_transf.status
Isto é o que eu quero exibir:
Descrição______________Kg em estoque___Kg em transferencia
(Todos os itens da tabela)_(se houver)_____(se houver)
o problema é que todas as consultas que eu tenho testado só me retornam alguns itens por exemplo só os itens que contenham o mesmo código nas 3 tabelas, sendo que da tb_itens_fund eu quero exibir todos os itens e se não tiver o mesmo código no estoque e transferencia me retorne NULL mas que exiba sua descrição.
como eu tenho testado:
SELECTtb_itens_fund.desc_fund,tb_transf.quant_kg,tb_transf.quant_uni,tb_est_fund.kg,tb_est_fund.unid,tb_itens_fund.cod_fundFROMtb_itens_fundLeft Join tb_est_fund ON tb_est_fund.cod_item = tb_itens_fund.cod_fundInner Join tb_transf ON tb_itens_fund.cod_fund = tb_transf.cod_transfWHEREtb_transf.status = '1' ANDtb_transf.destino = 'fundicao';
Esta consulta so me retorna os itens que eu tenho em transferencia, ja tentei mudar a posição de seleção das tabelas não sei se isso influencia em algo mas o resultado nunca foi o que eu quis.
Como estou fazendo hoje:
Para quebrar o galho enquanto não aprendo os JOINS / WHERE / HAVING e etc.. do MySql eu tenho feito assim:
Selecione tudo da tabela de itens e se tiver no estoque coloque seu valor ao lado da descrição:
SELECTtb_itens_fund.cod_fund,tb_itens_fund.desc_fund,tb_est_fund.kg,tb_est_fund.unidFROMtb_itens_fundLeft Join tb_est_fund ON tb_itens_fund.cod_fund = tb_est_fund.cod_item;
Então para verificar se existe na transferência dentro de um looping while eu verifico item por item
while($campo=mysql_fetch_array($consulta_acima)){SELECTtb_transf.cod_transf,tb_transf.quant_kg,tb_transf.quant_uniFROMtb_transfWHEREtb_transf.destino = 'fundicao' ANDtb_transf.status = '1'}
agora imagina como ta pesado tem +ou- 550 itens cadastrados e no loop elecheca 1 por 1 por isso eu queria aprender uma forma de fazer somente 1 consulta so, e se alguem tiver alguns links de tutoriais de como funciona os JOINS e sobre multi consultas, etc..
vlw
Carregando comentários...