Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

albertolotz

Join com várias tabelas

Recommended Posts

Olá, preciso de uma ajuda, estou a vários dias tentando e não consegui uma solução.

O Post está longo, pois não gostaria que ficasse dúvidas (kkk)

 

Preciso fazer uma consulta com várias tabelas, e buscar dados usando chave de uma tabela filha.

 

Vou resumir, porém a lógica é a mesma

 

plano = tabela principal, local onde os usuarios postam seus planejamentos

usuario = é o proprietário do planejamento

comp = é o que ele vai fazer ...

cliente = é a loja que ele vai atuar

grupo = é o grupo das lojas Ex: Grupo Casas Bahia que tem n lojas.

 

As tabelas teriam uma estrutura assim

 

** plano

plano_id

plano_data

usuario_id

comp_id

cidade_id

cliente_id

plano_real

plano_investimento

 

** usuario

usuario_id

usuario_nome

 

** comp

compromisso.id

compromisso

 

** grupo

grupo_id

grupo_nome

grupo_categ

 

**cliente

cliente_id

cliente_nome

grupo_id

 

 

 

Consigo fazer toda a consulta até o momento de tentar fazer aparecer dados da tabela grupo que esta ligada ao cliente e não ao plano, quando me referencio a tabela grupo :

 

inner join comp on plano.comp_id = comp.comp_id

inner join grupo on grupo.grupo_id = cliente.grupo_id

 

ocorre o erro : Error Code: 1054. Unknown column 'grupo.grupo_id' in 'on clause'

 

Desde já obrigado pela ajuda.

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na tabela comp você esta utilizando '.' no nome do campo, será que não pode dar algum conflito??

 

Eu fiz o select aqui alterando esse ponto do nome do campo para underline;

 

select a.plano_id, b.usuario_nome, c.compromisso, d.cliente_nome, e.grupo_nome from plano a
inner join usuario b on a.usuario_id = b.usuario_id
inner join comp c on a.comp_id = c.compromisso_id
inner join cliente d on a.cliente_id = d.cliente_id
inner join grupo e on d.grupo_id = e.grupo_id;

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia, muito obrigado pela dica, consegui resolver, para os demais veja o codigo real da minha consulta

 

select
LPAD(plano.plano_id,6,0) as plano_id,
usuario.usuario_nome,
equipe.equipe_nome,
plano.plano_dtaplano,
plano.plano_status,
plano.plano_periodo,
comp.comp_nome,
tipo.tipo_nome,
publico.publico_nome,
ge.ge_cnpj,
ge.ge_razao,
ge.ge_segmento,
pdv.pdv_regional,
pdv.pdv_cnpj,
pdv.pdv_razao,
cidade.cidade_nome,
cidade.cidade_uf ,
modulo.modulo_nome,
plano.plano_dtareal,
plano.plano_horas,
plano.plano_ptc,
plano.plano_obsplano,
plano.plano_obscanc,
plano.plano_obsbaixa,
plano.plano_bonifica,
sum(trncusto_valor) as Investimento
from plano
left join trncusto on plano.plano_id = trncusto.plano_id
inner join usuario on plano.usuario_id = usuario.usuario_id
inner join comp on plano.comp_id = comp.comp_id
inner join tipo on plano.tipo_id = tipo.tipo_id
inner join cidade on plano.cidade_id = cidade.cidade_id
inner join publico on plano.publico_id = publico.publico_id
inner join pdv on plano.pdv_cnpj = pdv.pdv_cnpj
inner join ge on ge.ge_cnpj = pdv.ge_cnpj ==> o erro ocorria nesta linha
inner join equipe on plano.equipe_id = equipe.equipe_id
inner join modulo on plano.modulo_id = modulo.modulo_id
group by plano.plano_id
order by plano.plano_dtaplano

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi pessoal, fazendo outros testes encontrei onde eu estava errando ....

Eu estava declarando inner join ge ... anten do inner join pdv ... ai não funcionava.

 

Abraço a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.