Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Na SQL abaixo, quando consulto as tabelas, os registros se repetem, apresentando mais do que realmente existem.
Alguém pode auxiliar no que está errado ou o que falta para que a select retorne apenas um registro para cada documento?
Esclareço que todas as tabelas tem um campo "documento", porém ele não é chave e no retorno trouxe todos os campos de todas as tabelas e não apenas as dá SQL:
select so01.documento,so01.digito,so01.nome,so01.regional,so01.situacao,so01.observacao,so01.n_spprev,so01.averbacao,
so02.endereco, so02.numero, so02.bairro,so02.cidade,so02.cep,so02.estado,so02.aniversario,
so03.rg, so03.cpf, so03.email,
so04.estado_civil, so04.agencia,so04.dg_agencia,so04.conta,so04.dg_conta,so04.banco,so04.ddd,so04.telefone,so04.nascimento,
so04.admissao,so04.demissao_seg,so04.admor,so04.ddd_cel,so04.celular
from so03
inner join so01 ON so01.documento= so03.documento
inner join so02 ON so02.documento= so03.documento
inner join so04 ON so04.documento=so03.documento
where so01.documento="68" and so01.digito="0"
Obrigado pelo apoio Motta.
Não tenho muito conhecimento. o banco de dados peguei do serviço para tentar desenvolver, ou seja, não o criei.
Segue uma foto com as tabelas. Nenhuma delas tem informações repetidas como comentou do celular, mas o vínculo existente entre elas é o documento e o dígito, que formam um documento tipo CPF, que não pode ser repetido na mesma tabela.
Fico no aguardo e já agradeço a tentativa.

As PKs da tabela é o campo ID.
Que devem ser diferentes pelas tabelas.
Não é exibido se existe uma UNIQUE KEY para documento.
Faça um teste , para um caso "duplidado"
faça um "select * from" para cada uma das tabelas
no documento e veja o resultado.
Eu ainda aposto que a duplicidade é normal e reflete o contéudo.Boa noite Motta!
fiz as selects individualmente em cada tabela, e todas retornaram apenas um registro para cada uma.
Todas as tabelas são vinculadas a um campo documento e outro campo dígito (where so01.documento="68" and so01.digito="0"), onde repeti, como solicitado, a consulta nas tabelas so01, so02, so03 e so04, todas com o "where" acima.
Como disse, esse documento, é um tipo de CPF, não tem repetição.
Motta!
Poderia me explicar como funciona no meu código, o FROM so03, pois tentei trocar a tabela por uma das outras três e ele dá erro (not unique table/alias 'so...)!!!
select so01.documento,...
so02.endereco, ...
so03.rg, ...
so04....
from so03
inner join so01 ON so01.documento= so03.documento
inner join so02 ON so02.documento= so03.documento
inner join so04 ON so04.documento=so03.documento
where so01.documento="68" and so01.digito="0"Motta!
Creio que resolvi.
Constei um Group By so01.documento e trouxe apenas o que precisava.
Agora tenho que entender o From so03, que não consigo constar outra tabela que dá erro, conforme constei acima.
Se puder me auxiiar fico grato.
Abraço
Você só pode citar a tabela uma vez para citar mais de uma precisa trocar o "alias"
Por exemplo
select ccdeb.descri ccustodeb , cccred.descri ccustocred , c.data , c.valor
from custos c
inner join centro_custo ccdeb ON ccdeb.cod= c.ccusto_de
inner join centro_custo cccred ON cccred.cod= c.ccusto_cred
exibir 2 Centro de custo ligados a mesma tabela
>
Citar
porém ele não é chave
Qual é a chave das tabelas ?
Os nomes das tabelas não ajudam mas pelas colunas temos dados que podem gerar a "duplicidade" pois
uma pessoas pode ter mais de uma conta e ou celular.