Fórum sql com varias tabelas #492559
17/09/2014
0
preciso fazer um select em 3 tabelas, estou tentando o seguinte:
select a.*, b.*, c.* from tabela1 a, tabela2 b, tabela3 c
where a.numero = b.numero and b.numite = c.numite
tabela1, mestre
tabela2, itens
tabela3, medidas
porem quando nao existir registros na tabela3, nao traz nenhum registro, tem como fazer essa consulta funcionar mesmo quando nao houver registros na tabela3 ?
Obrigado
Felipe Ip
Curtir tópico
+ 0Post mais votado
18/09/2014
Como vc questionou:
o SELECT correto seria:
select a.*,
b.*,
c.*
from tabela1 a
JOIN tabela2 b
ON a.numero = b.numero
LEFT JOIN tabela3 c
ON b.numite = c.numite
where a.data between '01.01.2014' and '31.01.2014'
and a.tipo = 'SAIDA' Marisiana Battistella
Gostei + 1
Mais Posts
18/09/2014
Wander Santos
Gostei + 0
18/09/2014
Wanderson Cortes
LEFT OUTER JOIN tabela2 b ON a.numero = b.numero
LEFT OUTER JOIN tabela3 c ON b.numite = c.numite
Gostei + 0
18/09/2014
Felipe Ip
select a.*, b.*, c.* from tabela1 a
LEFT OUTER JOIN tabela2 b ON a.numero = b.numero
LEFT OUTER JOIN tabela3 c ON b.numite = c.numite
where a.data between '01.01.2014' and '31.01.2014' and a.tipo = 'SAIDA'
terminei meus filtros e ficou perfeito, muito obrigado
Gostei + 0
18/09/2014
Marisiana Battistella
Não é considerada uma boa prática de programação utilizar
select c.* from nome_tabela c
Sempre indique os nomes das colunas que contém as informações que vc precisa obter no retorno. Você não precisa buscar todos os dados se vc só precisa da informação armazenada em X e Y.
Isso reduz o custo dos SQL e evita que o banco de dados realize um processamento maior e desnecessário.
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)