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 EstilloWeb
      Está ocorrendo um erro em meu comando MySQL na ordenação dos resultados. O código é o seguinte:
      $sql_imos4 = "Select DISTINCT imovel FROM propostas ORDER BY id DESC"; $exe_imos4 = mysqli_query($conexao, $sql_imos4); O objetivo é listar uma única vez um imóvel com proposta, mesmo que haja dois ou mais registros, sempre ordenado mais recente. O que está ocorrendo quando o imóvel tem mais de uma proposta cadastrada, a ordenação está sendo feita pelo ID da proposta mais antiga.
      Exemplo:
      imóvel ref. 4528 tem duas propostas, sendo que a mais recente tem o ID 235 porém aparece na listagem abaixo do imóvel ref. 4325, que tem uma só proposta e ID 230.
      O resultado deveria estar invertido neste caso.
      Onde pode estar o erro? Agradeço a ajuda.
    • By tii3030
      Olá, gostaria de saber qual a melhor maneira de selecionar e verificar a senha hash(senha) em um banco de dados e comparar com a senha inserida pelo usuário em um formulário de login. É mais adequado armazenar no BD o salt ? No exemplo abaixo eu criei o hash da senha antes de selecionar no banco:
      <?php include('conf.php'); $email = 'lala@123.com'; $senha = 'lala.123'; $custo = '08'; $salt = 'Cf1f11ePArKlBJomM0F6aJ'; $hash = crypt($senha, '$2a$' . $custo . '$' . $salt . '$'); $query_select = "SELECT email, password FROM usuarios WHERE email = '$email' AND password = '$hash'"; $select = mysqli_query($conexao,$query_select); if (mysqli_num_rows($select) == 1) { echo "Login Permitido"; } else { echo "Login ou senha invalidos"; } ?> Já neste exemplo eu selecionei o hash no banco para depois comparar com a senha inserida no formulário utilizando o password_verify():
      <?php #----------------- INCLUDING FILE --> "conf.php" include('conf.php'); if (isset($_POST['submit'])) { $email = mysqli_real_escape_string($conexao, $_POST['email']); $password = mysqli_real_escape_string($conexao, $_POST['password']); $query_select_email = "SELECT email FROM usuarios WHERE email = '$email'"; $select_email = mysqli_query($conexao,$query_select_email); $query_select_password = "SELECT password FROM usuarios"; $select_password = mysqli_query($conexao,$query_select_password); while($array = mysqli_fetch_array($select_password)) { $logarray = $array['password']; if (password_verify($password, $logarray) && mysqli_num_rows($select_email) == 1) { echo "Login permitido"; } } } ?> Aceito qualquer dica relacionado a segurança e para melhorar o código, desde já agradeço.
    • By Jefferson andre
      Bom dia, alguem me ajude a fazer funcionar este pequeno script usando ajax. Preciso pegar a resposta do console e colocar na tela na id buscar2
      Resposta do console:
      {"valor_hr_viagem":"10","valor_por_km":"8","valor_apos_18":"7","valor_sabado":"6","valor_domingo":"5","id":"834"} teste_ajax.html
      <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> </head> <body> <button class="btn btn-default" id="buscar3" type="button">Buscar2</button> <div id="dados2">Aqui será inserindo o resultado da consulta...</div> <div id="valor_fixo_cliente">teste</div> <!-- SCRIPT NECESSARIO PARA O AJAX FUNCIONAR // <script src="jquery.2.1.3.min.js"></script> !--> <script src="jquery.2.1.3.min.js"></script> <script> function buscar3($id_cliente) { //O método $.ajax(); é o responsável pela requisição $.ajax ({ //Configurações type: "POST",//Método que está sendo utilizado. dataType: "json",//É o tipo de dado que a página vai retornar. url: "busca3.php",//Indica a página que está sendo solicitada. //função que vai ser executada assim que a requisição for enviada beforeSend: function (mensagem_retorno) { $("#dados2").html("Carregando..."); $("#valor_fixo_cliente").html("Carregando..."); }, data: {id_cliente: "834"},//Dados para consulta //função que será executada quando a solicitação for finalizada. success: function (mensagem_retorno) { console.log (mensagem_retorno); $("#dados2").html(mensagem_retorno.conteudo); } }); } $('#buscar3').click(function () { buscar3($("#id_cliente").val()) }); </script> </body> </html>
      buscar3.php
      <?php require('conexao_dbo.php'); include('error_report.php'); $id_procurar = $_POST['id_cliente']; $sql = "SELECT * FROM clientes WHERE id='$id_procurar'"; $sql = $arquivo->query($sql); if($sql->rowCount()>0) { $linha = $sql->fetch(); $conteudo = json_encode( array ("valor_hr_viagem" => $linha['valor_hr_viagem'], "valor_por_km" => $linha['valor_por_km'], "valor_apos_18" => $linha['valor_apos_18'], "valor_sabado" => $linha['valor_sabado'], "valor_domingo" => $linha['valor_domingo'], "id" =>$linha['id'] ) ); echo $conteudo; } ?> estrutura da tabela clientes em anexo
       

    • By juliosertori
      Olá tudo bem?
       
      Tenho uma tabela onde registro os produtos que vendeu, com o ID do Pedido, e preciso listar os mais vendidos por período.
       
      Tenho o SQL:
      SELECT SUM(quantidade) AS quantidade, id_produto, nome_produto FROM pedidos_produtos WHERE id_empresa = '".$_CPD['CompanyId']."' GROUP BY id_produto order by quantidade desc limit 0,10 Lista perfeitamente, mas o problema é que a DATA está na tabela PEDIDOS, como linkar?
       
      Obrigado!
    • By Deivid Santos
      Salve galera, estou quebrando a cabeça aqui, já pesquisei mas não achei nada sobre.
      Eu tenho alguns dados que busco no banco de dados e mostro em um datagrid, além do CRUD que implantei eu preciso ter a opção de mudar as posições no banco. Preciso fazer isso pois elas são informações que vão para um telão. e ele segue uma ordem na mostragem dos dados.
      Teria alguma forma de arrastar a linha do grid e assim ele mudar o ID do mesmo conforme a posição que ficaria e assim os outros também seriam atualizados?
      Como exemplo segue uma imagem de como ele funciona. por exemplo eu movimento o ID 1 na posição abaixo do ID 3, assim o ID 2 e 3 se tornariam 1 e 2 com essa movimentação e o que era 1 se torna 3.

       
      Agradeço qualquer ajuda que puder.
       
       
×

Important Information

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