Jump to content
erikalopes

[Resolvido] [ Dúvida ] - Inner Join

Recommended Posts

Olá pessoas, eu estou estudando Banco de Dados (postgresql com pgadmin3) e

criei as seguintes tabelas (Foto), e agora eu preciso selecionar nome de medico e paciente que estão na tabela consulta,

eu tentei de algumas maneiras como esta abaixo, filtrando por nome da clinica, porém ele me dá esse erro:

 

ERROR:  table name "pessoa" specified more than once

 

-----------------------------------------------------------------------------------------------------------------------------------------

Citar

select paciente.nome "Paciente",medico.nome "Medico",clinica.nome "Clinica" from pessoa
inner join paciente
on pessoa.id= paciente.pessoa_id
inner join consulta
on paciente.id=consulta.paciente_id
inner join medico
on medico.id=consulta.medico_id
inner join pessoa
on pessoa.id=medico.pessoa_id
inner join clinica
on clinica.id=consulta.clinica_id
where clinica="Saúde Mais"

-----------------------------------------------------------------------------------------------------------------------------------------

alguém poderia me ajudar a filtrar essas informações usando inner join?

Captura de tela de 2019-09-12 15-33-31.png

Share this post


Link to post
Share on other sites

o erro é claro: você está citando duas vezes a tabela "pessoa";

elimine uma dessas citações.

Share this post


Link to post
Share on other sites

No MySQL usei o artificio dos "Alias" também. Veja meu exemplo:

SELECT 
	tbl_pedidos.N_Pedido AS N_Pedido,
	tbl_itens_pedido.N_Controle AS N_Controle,
	tbl_pedidos.Dia AS Dia,
	tbl_pedidos.Cliente AS Cod_Cliente,
	tbl_contatos_cli.Contato AS Cliente, /*AQUI*/
	tbl_pedidos.Vendedor AS Cod_Vendedor,
	tbl_contatos_ven.Contato AS Vendedor, /*AQUI*/
	tbl_pedidos.Filial AS Cod_Filial,
	tbl_filiais.Filial AS Filial,
	tbl_itens_pedido.Produto AS Cod_Produto,
	tbl_produtos.Produto AS Produto,
	tbl_itens_pedido.Quantidade AS Quantidade,
	tbl_itens_pedido.Valor AS Valor,
	tbl_itens_pedido.Pago AS Pago 
from tbl_pedidos 
	JOIN tbl_itens_pedido ON tbl_pedidos.N_Pedido = tbl_itens_pedido.N_Pedido
	JOIN tbl_produtos ON tbl_itens_pedido.Produto = tbl_produtos.Cod
	JOIN tbl_filiais ON tbl_pedidos.Filial = tbl_filiais.Cod
	JOIN tbl_contatos AS tbl_contatos_cli ON tbl_pedidos.Cliente = tbl_contatos_cli.Cod
	JOIN tbl_contatos AS tbl_contatos_ven ON tbl_pedidos.Vendedor = tbl_contatos_ven.Cod
order by tbl_pedidos.Dia DESC, tbl_pedidos.Cliente, tbl_pedidos.Vendedor, tbl_itens_pedido.Pago;

Observe a penúltima e antepenúltima linha.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By patrickjnunes1995
      Bom dia, estou tendo dificuldades em recuperar dados de uma tabela do banco de dados, pelo PHP.
      <?php require_once('conexao_bd.php'); $consulta = "SELECT * FROM table"; $con = $mysqli->query($consulta) or die ($mysql->error); echo $dado["nome"]; ?>  
      E o arquivo conexão_bd.php está ok.
       
      Não pude encontrar em nenhuma página pela internet essa solução.
       
      Quero que exiba na página PHP, valores como algum nome, gravado na tabela do banco de dados.
       
      Desde já obrigado.
    • By srs1999_
      Tópico
       
      Site em Código
      Sobre desenvolver sites sem o wordpress que ja tá tudo ali feito que seja um site dinâmico ou seja com banco de dados , APIs de pagamento, Painel para o usuário ,  além de todas  as funções que tem no wordpress e você teria propriedade pra explicar sobre detalhes mais técnicos da produção onde no wordpress só quem entende de progrqmação explicaria algum detalhe técnico 
      Então usando basicamente : 
      FRONT END 
      HTML 
       CSS 
      JAVASCRIPT 
      ALGUMA DE BACKEND COMO PHP E BANCO DE DADOS
      Pode se criar sites/sistemas tão bons ou melhores que no wordpress
       
      Fato : o proprio wordpress é feito em php e ate o proprio facebook tbm em php
      Fato 2 :  cerca de 70% dos sites são feitos em Wordpress
       
      Acho esse lance de procurar o caminho mais fácil limita muito a pessoa por exemplo é facil editar imagens no paint bem intuitivo , agora para editar no photoshop com muitas outras possibilidades  acaba sendo importante ir explorando essa elaboração mais difícil  com um mesmo objetivo. No caso do exemplo ( editar imagens )  
       
      Reflexão:
      Vale a pena se dedicar a trabalhar com a ferramenta Wordpress apenas por ser um meio rápido de ganhar dinheiro ?
      Ou trabalhar sem wordpress  usando tudo que exigido pra criar coisas originais mais que não seria tão rápido a produção. Mas creio que além dos sites feitos também geraria a possibildade de vender o sistema web criado para o cliente personalizar .
       
      Você Desenvolveria de que forma :
       Wordpress apenas ?
       
      Conhecer programação pra trabalhar 
      com  Wordpress ?
       
      Produzir tudo só com programação totalmente dinâmico sem  Wordpress?
    • By Duilio Gomes Pereira
      Tenho um banco de dados com mais de 21 mil usuários do wordpress. Como faço para deletar os usuário no  Phpmyadmin e deixar apenas 2 usuários?
       
      Pois só preciso de 2 usuários neste site.
       
      Obrigado!
    • By Duilio Gomes Pereira
      Olá!
      Tenho um bando de dados com mais de 21 mil usuários do wordpress. Como faço para deletar no Phpmyadmin e deixar apenas 2 usuários?
      Obrigado!
    • By Junior SAIZO
      Estou com uma duvida na qual não obtive solução. Tenho um objeto Array values e um array status, onde eu quero relacionar os índices do objeto Array values aos indices do array status. De modo que eu possa escrever um teste lógico onde: Se o indice 0 do objeto Array values for diferente de null (ou seja, contém valor), então o indice 0 do array status receberá o valor '1'.
      OU 
      Se o indice 1 do objeto Array values for diferente de null (ou seja, contém valor), então o indice 1 do array status receberá o valor 1.
       
      Por exemplo, antes do teste lógico:
      values:[ 0 => [ 0 => "1,02" 1 => "2,032" 2 => "32,01" 3 => "0,021" ] 1 => [ 0 => "null" 1 => "null" 2 => "8,258" 3 => "1,021" ] 2 => [ 0 => "4,021" 1 => "6,258" 2 => "null" 3 => "10" ] ] status:[ 0 => "0" 1 => "0" 2 => "0" ] Após o teste lógico:
       
      status:[   0 => "1"   1 => "0"   2 => "0" ] Neste exemplo só o indice 0 do array status recebeu o valor "1", porque APENAS o array 0 do objeto Array values tinha valores diferente de null.
       
      ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      O array status sempre terá o mesmo número de índices que o objeto Array values terá de arrays (Se array status tem 5 indices (0, 1, 2, 3, 4), o objeto Array value terá 5 arrays (0, 1, 2, 3, 4)). Além disso o array status sempre iniciará com os valores do indice igual a '0'. E se os valores dos indices do objeto values forem TODOS diferentes de null, cada indice do array status receberá o valor '1'.
       
      Exemplificando:

       
      <?php status:[   0 => "1",   1 => "1",   2 => "1", ] ?>  
       
      Em outro fórum obtive a seguinte resposta:
       
      <?php $aValues = [ 0 => [ 0 => "1,023" , 1 => "0,023" , 2 => "5,023" , 3 => "1" ], 1 => [ 0 => null , 1 => null , 2 => "5" , 3 => "1,87" ], 2 => [ 0 => "null" , 1 => null , 2 => null , 3 => null ] ]; $aStatus = [ 0 => 0 , 1 => 0 , 2 => 0 ]; foreach ($aValues as $chave => $values) { $status = 1; foreach ($values as $value) { // se tiver qquer valor null status recebe 0 if ($value == null) { $status = 0; break; } } $aStatus[$chave] = $status; } echo '<pre>'; print_r($aStatus); ?> Porém, quando eu executo o código NÂO é me retornado o array status com os indices com valores "0" ou "1", me retorna apenas uma nova chave FORA do array status com algum valor "0" ou "1". Tentei modificar o código ou tentar uma abordagem diferente, mas sem resultado. Vou inserir uma imagem para melhor compreensão do que o código me retorna.
       
       
      Espero ter sido claro na minha dúvida.  
      Desde já, agradeço.

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.