Ir para conteúdo

Arquivado

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

phpricardo

Query entre duas tabelas

Recommended Posts

Olá,

 

Tenho duas tabelas digamos que sem relacionamento, mas da seguinte maneira:

 

TAB_A

idRID

...

...

parentesco(vachar)

 

TAB_B

idDep

..

..

idParentesco(int)

 

ou seja o idParentesco contem o código que referencia o grau de parentesco na TAB A ex: 1 = Filho(a), 2 = Conjugue....

 

O que eu quero é fazer um select que possa me trazer o NOME da pessoa junto ao seu GRAU de PARENTESCO.

 

O código abaixo não traz exatamente o que quero.

SELECT a.nome AS DEPENDENTE
FROM tab_a a
INNER JOIN tab_b b ON b.idDep = a.idRid

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que quer dizer os campos relacionados?

 

b.idDep, acredito que seja o id do dependente;

a.idRid, não faço ideia...

 

o idRid é apenas id de registro da tabela mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É o id do usuário?

 

Por exemplo, cada usuário é único, mas este usuário pode ser dependente de outro, digamos que depois do campo idRid exista um campo id_titular (apenas como exemplo), você pode relacionar o id_titular com o idRid, mesmo sendo na mesma tabela...

SELECT * FROM tab_a a
INNER JOIN tab_a b ON b.idRid = a.id_titular

Agora não entendo como seria essa tabela tab_b onde existe o b.idDep, é uma tabela que faz o relacionamento entre os usuários?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essas são as tabelas... :}

 

TAB B

idRelatorioIndividualDependente int(10) unsigned NO PRI auto_increment idContratoDependente int(11) unsigned NO MUL idade int(10) unsigned NO parentesco varchar(45) NO valorPlano decimal(10,2) NO valorAuxilio decimal(10,2) NO mes int(11) unsigned NO ano int(11) unsigned NO idRelatorioIndividualTitular int(11) unsigned NO MUL operadora varchar(45) NO

 

 

TAB A

idDependente int(10) unsigned NO PRI auto_increment idPessoa int(11) unsigned YES nome varchar(100) YES dtNascimento date YES idParentesco int(11) unsigned YES pensionista tinyint(3) unsigned YES universitario tinyint(3) unsigned YES pne tinyint(3) unsigned YES comprovanteEscolar tinyint(3) YES

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi, poder haver mais de um registro na tab b para cada registro da tab a, então não podem ser relacionados os campos tab_a.idDependente com tab_b.idRelatorioIndividualDependente, este tipo de relacionamento é feito quando as duas tabelas identificam qual é o usuário, ou dependente. O campo tab_a.idPessoa, tem alguma referencia em com a TAB B?

 

Vou dar um exemplo simples...

SELECT c.numero_contrato, u.id, u.nome
FROM contratos c
INNER JOIN usuarios u ON u.numero_contrato = c.numero_contrato

Nessa consulta, eu consulto todos os usuários de cada contrato, como pode perceber, em ambas as colunas existe o campo "numero_contrato", onde posso usar como referencia entre as tabelas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o dado esta armazenado? Cite 1 ou 2 exemplos.


Ao meu ver, o modelo "ideal" seria algo como:

 

tabPessoa

idPessoa

stNome

dtNascimento

 

tabParentesco

idPessoaA

idPessoaB

idGrauParentesco

 

tabGrauParentesco

idGrauParentesco

stDescricao

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.