Fórum Join com 4 tabelas #38146
20/08/2003
0
como executar um join em 3 tabelas. ex:
SELECT C.*, D.NOME NOMEDEP, E.NOME NOMEEMP
FROM CLIENTE C LEFT JOIN DEPARTAMENTO D LEFT JOIN EMPRESA E
ON (C.DEPARTAMENTO = D.DEPARTAMENTO)
ON (C.EMPRESA = E.EMPRESA)
caso D.DEPARTAMENTO esteja vazio, o nome da empresa nao aparece.
colocando:
FROM EMPRESA E RIGHT JOIN CLIENTE C LEFT JOIN DEPARTAMENTO D
dá certo, porém, quando eu usar 4 tabelas nao sei como fazer.
SELECT C.*, D.NOME NOMEDEP, E.NOME NOMEEMP
FROM CLIENTE C LEFT JOIN DEPARTAMENTO D LEFT JOIN EMPRESA E
ON (C.DEPARTAMENTO = D.DEPARTAMENTO)
ON (C.EMPRESA = E.EMPRESA)
caso D.DEPARTAMENTO esteja vazio, o nome da empresa nao aparece.
colocando:
FROM EMPRESA E RIGHT JOIN CLIENTE C LEFT JOIN DEPARTAMENTO D
dá certo, porém, quando eu usar 4 tabelas nao sei como fazer.
Fabiogr
Curtir tópico
+ 0
Responder
Posts
24/08/2003
Paulo Renato
Caro fabio, experimente fazer da seguinte forma:
SELECT C.*,
D.NOME NOMEDEP,
E.NOME NOMEEMP,
x.nome nomecidade
FROM CLIENTE C
LEFT JOIN DEPARTAMENTO D on (C.DEPARTAMENTO = D.DEPARTAMENTO)
LEFT JOIN EMPRESA E ON (C.EMPRESA = E.EMPRESA)
left join cidades x on (x.cod_cidade = c.cod_cidade)
Acrescente quantos left join forem necessários. Vale lembrar que quando vc usa inner a instrução só retorna os registro que satisfaçam todas as condições dos inners.
SELECT C.*,
D.NOME NOMEDEP,
E.NOME NOMEEMP,
x.nome nomecidade
FROM CLIENTE C
LEFT JOIN DEPARTAMENTO D on (C.DEPARTAMENTO = D.DEPARTAMENTO)
LEFT JOIN EMPRESA E ON (C.EMPRESA = E.EMPRESA)
left join cidades x on (x.cod_cidade = c.cod_cidade)
Acrescente quantos left join forem necessários. Vale lembrar que quando vc usa inner a instrução só retorna os registro que satisfaçam todas as condições dos inners.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)