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).