我正在尝试在PostgreSQL中执行以下sql指令,当我这样做时会发生以下错误:
表名“fat_unidades”多次指定“。
任何帮助?
SELECT amb_recepcao.sequencial, amb_recepcao.cod_und_atend, atend.nome_fantasia as uni_atendimento
, amb_recepcao.cod_profissional, profissional.nom_pessoa as nom_profissional
, amb_recepcao.cod_atividade, fat_atividades.nom_atividade, amb_recepcao.tipo_pessoa
, amb_recepcao.cod_undpaciente, uni_pacie.nome_fantasia as nom_unidpaciente
, amb_recepcao.cod_paciente, pacie.nom_pessoa as paciente, amb_recepcao.cod_pessoa
, pessoas.nom_pessoa, amb_recepcao.cod_sintoma, amb_sintomas.nom_sintoma
, amb_recepcao.data_atendimento, amb_recepcao.hora_atendimento, amb_recepcao.motivos
, amb_recepcao.acoes_realizadas, amb_recepcao.senha_atendimento
FROM amb_recepcao
LEFT JOIN fat_unidades ON ( fat_unidades.cod_unidade = amb_recepcao.cod_und_atend )
LEFT JOIN entidades atend ON ( atend.cod_entidade = fat_unidades.cod_entidade )
LEFT JOIN fat_atividades ON ( fat_atividades.cod_atividade = amb_recepcao.cod_atividade )
LEFT JOIN entidades uni_pacie ON ( uni_pacie.cod_entidade = fat_unidades.cod_entidade )
LEFT JOIN pacientes ON ( pacientes.cod_paciente = amb_recepcao.cod_paciente )
LEFT JOIN fat_unidades ON ( fat_unidades.cod_unidade = amb_recepcao.cod_undpaciente )
LEFT JOIN pessoas pacie ON ( pessoas.cod_pessoa = pacientes.cod_pessoa )
LEFT JOIN pessoas ON ( pessoas.cod_pessoa = amb_recepcao.cod_pessoa )
LEFT JOIN amb_sintomas ON ( amb_sintomas.cod_sintoma = amb_recepcao.cod_sintoma )
LEFT JOIN profissionais ON ( profissionais.cod_profissional = amb_recepcao.cod_profissional )
LEFT JOIN pessoas profissional ON ( pessoas.cod_pessoa = profissionais.cod_pessoa )
答案 0 :(得分:12)
你加入了两次。如果需要这样做,请为其中一个联接指定别名
e.g。
LEFT JOIN fat_unidades AS f1 ON f1.cod_unidade ...
重复联接标记在
下方**LEFT JOIN fat_unidades** ON ( fat_unidades.cod_unidade = amb_recepcao.cod_und_atend )
LEFT JOIN entidades atend ON ( atend.cod_entidade = fat_unidades.cod_entidade )
LEFT JOIN fat_atividades ON ( fat_atividades.cod_atividade = amb_recepcao.cod_atividade )
LEFT JOIN entidades uni_pacie ON ( uni_pacie.cod_entidade = fat_unidades.cod_entidade )
LEFT JOIN pacientes ON ( pacientes.cod_paciente = amb_recepcao.cod_paciente )
**LEFT JOIN fat_unidades** ON ( fat_unidades.cod_unidade = amb_recepcao.cod_undpaciente )
LEFT JOIN pessoas pacie ON ( pessoas.cod_pessoa = pacientes.cod_pessoa )
LEFT JOIN pessoas ON ( pessoas.cod_pessoa = amb_recepcao.cod_pessoa )
LEFT JOIN amb_sintomas ON ( amb_sintomas.cod_sintoma = amb_recepcao.cod_sintoma )
LEFT JOIN profissionais ON ( profissionais.cod_profissional = amb_recepcao.cod_profissional )
LEFT JOIN pessoas profissional ON ( pessoas.cod_pessoa = profissionais.cod_pessoa )
答案 1 :(得分:3)
正如错误所述,您在源表中列出了两次相同的表fat_unidades
。当您在数据表达式中提及fat_unidades
时,数据库引擎无法分辨您引用的表,因为两个引用具有相同的名称。您必须在至少一个对fat_unidades
的引用上使用具有不同名称的表别名,以便对该表的每个引用具有不同的名称。
答案 2 :(得分:0)
使用不同的表别名