Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
>
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.
É 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?
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
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
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
O que quer dizer os campos relacionados?
b.idDep, acredito que seja o id do dependente;
a.idRid, não faço ideia...