none
Chaves estrangeiras múltiplas da mesma tabela RRS feed

  • Pergunta

  • Olá pessoal! Alguém pode me ajudar?

    Tenho a tabela PESSOAS e a tabela RELAÇÃO

    PESSOAS

    Cod1  - João

    Cod2 - Maria

    Cod3 - Pedrinho

    RELAÇÃO

    Chave - Cod3 - Cod1 - Cod2

    No caso, todos os três: filho, pai e mãe estão cadastrados na tabela PESSOAS individualmente

    e tem chave estrangeira na tabela RELAÇÃO

    quero que seja exibida a tabela relação da seguinte forma com um select

    Chave - Pedrinho - João - Maria

    Como faço isso?

    Estou usando c# e banco de dados access
    • Editado ValNeh quarta-feira, 27 de setembro de 2017 14:58
    quarta-feira, 27 de setembro de 2017 02:35

Respostas

  • Boa tarde ValNeh, se entendi, você quer trazer os dados das duas tabelas.

    Deve executar o comando sql abaixo:

    select r.codigo, f.nome nomefilho, p.nome nomepai, m.nome nomemae 

    inner join pessoas f on r.filho = f.codigo 

    inner join pessoas p on r.pai = p.codigo 

    inner join pessoas m on r.mae = m.codigo

    Veja se é isto

    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quinta-feira, 28 de setembro de 2017 18:25

Todas as Respostas

  • Boa tarde, ValNeh. Tudo bem?

    Obrigado por usar o fórum MSDN.

    Essa seria uma questão de "How to/Customização" ou "Break Fix/Erro"?

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 27 de setembro de 2017 20:49
    Moderador
  • Bom, preciso exibir as informações juntas...

    Tentei com INNER JOIN, mas sem sucesso, pois ele retorno três linhas com as informações de cada chave estrangeira em cada linha separadamente, mas o que eu preciso é que apareçam combinadas na mesma linha?

    Não sei como faço isso!

    quinta-feira, 28 de setembro de 2017 02:01
  • Boa tarde, ValNeh.

    No caso você quer as informações de 3 linhas em uma só, isso? Já tentou usar concatenação?

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 28 de setembro de 2017 16:28
    Moderador
  • Isso mesmo. Obrigado pela sugestão, mas acho que ainda não é bem isso.

    Ainda sou meio leigo, porque sou programador há pouco tempo e sem um estudo avançado na área.

    Bom, pelo que vi a concatenação coloca as informações juntas na mesma linha e mesma coluna.

    O que eu preciso no entanto, é que fiquem na mesma linha, porém em colunas diferentes

    TABELA PESSOAS

    CODIGO      NOME

    1                 João

    2                 Maria

    3                 Pedrinho

    TABELA RELAÇÃO

    CODIGO       FILHO     PAI        MAE

    1                     3          1             2

    Ok. Estas são as tabelas origem. Os valores das colunas FILHO, PAI e MAE se referem à chave primária da tabela pessoas.

    Mas na hora de exibir a segunda tabela, quero que ao invés do código do FILHO, PAI e MAE apareçam seus respectivos nomes assim:

    TABELA RELAÇÃO

    CODIGO     FILHO           PAI        MAE

    1                Pedrinho      João       Maria


    • Editado ValNeh quinta-feira, 28 de setembro de 2017 17:34
    quinta-feira, 28 de setembro de 2017 17:30
  • Boa tarde ValNeh, se entendi, você quer trazer os dados das duas tabelas.


    Deve executar o comando sql abaixo:

    select r.codigo, f.nome nomefilho, p.nome nomepai, m.nome nomemae 

    inner join pessoas f on r.filho = f.codigo 

    inner join pessoas p on r.pai = p.codigo 

    inner join pessoas m on r.mae = m.codigo

    Veja se é isto

    quinta-feira, 28 de setembro de 2017 17:56
  • Boa tarde ValNeh, se entendi, você quer trazer os dados das duas tabelas.

    Deve executar o comando sql abaixo:

    select r.codigo, f.nome nomefilho, p.nome nomepai, m.nome nomemae 

    inner join pessoas f on r.filho = f.codigo 

    inner join pessoas p on r.pai = p.codigo 

    inner join pessoas m on r.mae = m.codigo

    Veja se é isto

    quinta-feira, 28 de setembro de 2017 18:01
  • Boa tarde ValNeh, se entendi, você quer trazer os dados das duas tabelas.

    Deve executar o comando sql abaixo:

    select r.codigo, f.nome nomefilho, p.nome nomepai, m.nome nomemae 

    inner join pessoas f on r.filho = f.codigo 

    inner join pessoas p on r.pai = p.codigo 

    inner join pessoas m on r.mae = m.codigo

    Veja se é isto

    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quinta-feira, 28 de setembro de 2017 18:25
  • Ok. Obrigado... Demoru um pouco pra entender a sintaxe disso, mas acabou dando certo.

    Era isto mesmo que eu precisava!

    Muito obrigado!

    sábado, 30 de setembro de 2017 20:10