Ir para conteúdo

Arquivado

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

EMSO.EXE

INNER JOIN de uma tabela com ela mesma

Recommended Posts

Jovens!

Estou montando um sistema simples que trabalha com 2 tabelas tb_colaboradores e tb_setor_cargo.

tb_colaboradores

cd_matricula....nm_nome....cd_codigo
1001................Bruce.............003
1002................Clark..............003
1003................Diana.............004
1004................Barry..............004
1005................Hal.................005
A coluna cd_codigo é a referência ao cargo do funcionário.

tb_setor_cargo
cd_codigo....cd_setor_cargo.....ds_setor_cargo
001................999......................informatica
002................999......................atendimento
003................001......................aux de informatica
004................002......................aux de atendimento
005................001......................programador
A coluna cd_codigo "individualiza" cada setor e cargo.
A coluna cd_setor_cargo com valor 999 define que trata-se de um setor
A coluna cd_setor_cargo com valor 001 define que trata-se de um cargo que pertence ao setor 001 (cd_codigo)
Agora estou tentando exibir as informações em uma página em PHP, até este ponto está ok, consigo exibir matrícula, nome, cargo, porém não consigo exibir a descrição do setor, consigo exibir somente a código do setor.
SELECT * FROM tb_colaboradores AS c
INNER JOIN tb_setor_cargo AS a ON c.cd_codigo = a.cd_codigo
INNER JOIN tb_setor_cargo AS b ON a.cd_codigo = b.cd_codigo
ORDER BY nm_nome;

Acredito que o problema esteja no 2 INNER JOIN pois este não faz diferença de estar ou não no código.

 

Alguém pode demonstrar se é possível fazer essa exibição dos registros?

 

Agradeço

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O 1º join é para exibir o cargo e o 2º era uma tentativa de exibir o setor, tanto cargo e setor estão na mesma tabela

 

tb_setor_cargo
cd_codigo....cd_setor_cargo.....ds_setor_cargo
001................999......................informatica
002................999......................atendimento
003................001......................aux de informatica
004................002......................aux de atendimento
005................001......................programador

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. crie uma tabela para cargos, outra p/ departamentos;

2. na tabela de funcionarios, crie uma coluna p/ cada 1 dessas 2 tabelas acima.

dicas sobre joins:

http://www.devmedia.com.br/utilizando-joins-em-sql/1071

estude modelagem; departamentos pertencem à entidade "empresa";

(e até ao contrario, 1 funcionario "pertence" a 1 departamento, não o inverso).

já cargos normalmente são atributos do funcionário (entidades distintas, portanto).

 

 

correção: onde se lê "entidade "empresa";"

por gentileza considerar "sistema "empresa";"

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.