Ir para conteúdo
Fórum Script Brasil
  • 0

Inner Join com a mesma tabela


lucasraniere

Pergunta

Olá a todos, sou novo no fórum e na verdade esse é o primeiro post que faço em um fórum.

Trabalho em uma empresa de plano de assistência médico/hospitalar e estou desenvolvendo um sistema para controle de guias de pedidos de exames ambulatoriais e consultas médicas. Quando alguma dessas guias está incorreta, devolvo ela para o prestador de serviço que realizou a consulta ou exame. O objetivo do sistema é automatizar esse controle. Na parte de programação está tudo encaminhando bem. O problema é que tenho uma dúvida no select do banco PostgreSQL.

Dentre todas as tabelas tenho uma tabela chamada "prestador" onde é salvo todos os médicos, laboratórios, hospitais, etc. E tem uma tabela que chama "guia" é salvo as guias para serem devolvidas. Na tabela "guia" tenho dois campos, "solicitante_guia" e "executante_guia" que são chaves estrangeiras da tabela "prestador", por exemplo, na guia vou preencher qual prestador solicitou o exame, e qual prestador realizou(executou) o exame. No insert não tive problemas, tive problema no select dessas informações.

Segue abaixo a tabela:

CREATE TABLE guia (
    id_guia serial NOT NULL,
    senha_guia integer,
    numero_guia varchar,
    grupo_guia integer,
    carteira_guia varchar,
    beneficiario_guia varchar,
    parecer_guia integer,
    solicitante_guia integer,
    executante_guia integer,
    atendimento_guia integer,
    situacao_guia integer,
    status_guia integer NOT NULL,
    obs_guia varchar,
    CONSTRAINT pk_guia PRIMARY KEY (id_guia),
    CONSTRAINT fk_guia_grupo FOREIGN KEY (grupo_guia) REFERENCES grupo (id_grupo),
    CONSTRAINT fk_guia_parecer FOREIGN KEY (parecer_guia) REFERENCES parecer (id_parecer),
    CONSTRAINT fk_guia_solicitante FOREIGN KEY (solicitante_guia) REFERENCES prestador (id_prestador),
    CONSTRAINT fk_guia_executante FOREIGN KEY (executante_guia) REFERENCES prestador (id_prestador),
    CONSTRAINT fk_guia_atendimento FOREIGN KEY (atendimento_guia) REFERENCES atendimento (id_atendimento),
    CONSTRAINT fk_guia_situacao FOREIGN KEY (situacao_guia) REFERENCES situacao (id_situacao),
    CONSTRAINT fk_guia_status FOREIGN KEY (status_guia) REFERENCES status (id_status)
);
 

SELECT * FROM guia
    INNER JOIN grupo ON grupo.id_grupo = guia.grupo_guia
    INNER JOIN parecer ON parecer.id_parecer = guia.parecer_guia
 ->->->    INNER JOIN prestador ON prestador.id_prestador = guia.solicitante_guia  
 ->->->    INNER JOIN prestador ON prestador.id_prestador = guia.executante_guia
    INNER JOIN atendimento ON atendimento.id_atendimento = guia.atendimento_guia
    INNER JOIN situacao ON situacao.id_situacao = guia.situacao_guia
    INNER JOIN status ON status.id_status = guia.status_guia

 

 

ERRO DO SELECT

ERROR:  table name "prestador" specified more than once

********** Error **********

ERROR: table name "prestador" specified more than once
SQL state: 42712

 

O que estou fazendo de errado? Como podem ver sou muito leigo com relação a banco de dados (minha única DP na Faculdade rsrsrs).

Desde já, muito obrigado.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

faz isso:

...INNER JOIN prestador ON (prestador.id_prestador = guia.solicitante_guia  )
INNER JOIN prestador as prestador_2 ON (prestador_2.id_prestador = guia.executante_guia )....

como diz o próprio erro  "table name "prestador" specified more than once", você já informou essa tabela, so da um outro nome pra ela.

Link para o comentário
Compartilhar em outros sites

  • 0
13 minutos atrás, CRenan disse:

faz isso:

...INNER JOIN prestador ON (prestador.id_prestador = guia.solicitante_guia  )
INNER JOIN prestador as prestador_2 ON (prestador_2.id_prestador = guia.executante_guia )....

como diz o próprio erro  "table name "prestador" specified more than once", você já informou essa tabela, so da um outro nome pra ela.

Muito obrigado CRenan. Deu certo aqui.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...