Ir para conteúdo
rorlando

select em diversas tabelas

Recommended Posts

Bom dia!

tento fazer consulta em várias tabelas. tudo vai bem até a 3ª, a partir da 4ª a ampola da consulta fica rodando, mas não trás nenhum resultado. 

O código que estou utilizando para meu banco é o seguinte:

select so01.documento,so01.digito, so01.nome, so01.sexo, so01.situacao, so01.regional, 
       so01.categoria, so01.observacao, so01.tipo, so01.n_spprev, so02.endereco, so02.bairro, 
       so02.cidade, so02.estado, so02.cep, so02.aniversario,so03.rg, so03.cpf, so03.email, 
       so04.estado_civil, so04.ddd, so04.telefone, so04.graduacao, so04.nascimento, so04.admissao, 
       so04.admor
from so01, so02, so03, so04
where so01.documento=so02.documento 
and so01.documento=so03.documento 
and so01.documento=so04.documento
and so01.situacao <> 'demitido' 
and so01.tipo <> 'entidade'
order by so01.regional, so01.tipo

Quando não incluo a tabela so04 e suas referências eu obtenho o retorno.

alguém teria a solução para meu problema? mesmo que tenha que alterar todo o código.

Obrigado.
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

As chaves de todos os relacionamentos foram informadas no "where" ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim Motta!

todas as tabelas tem um campo documento. Até consegui, com o comando, trazer os registros, mas demora muito para a resposta, além do que, existem documentos iguais, sendo diferenciados por um campo "dígito".

Sabe se existe uma outra forma para eu fazer os relacionamentos? e que fique com um código mais limpo e rápido?

Obrigado por enquanto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu!

Vou pesquisar mais e ver o que acho, pois não tenho o conhecimento necessário para resolver o problema.

Vamos caminhando.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora


  • Conteúdo Similar

    • Por Philippe Luis
      Boa noite galera. Bom estou fazendo um sistema em php onde faço um SLECT para trazer resultados na pagina principal.
      Basicamente tenho lojas registradas no meu banco de dados e mostro elas para o usuário.
      O PROBLEMA:
      Meu select funciona certo e tudo mais. So que ele sempre mostra os mesmos resultados toda vez que o usuário entra no site, isso porque eu peço para mostrar resultados em ordem crescente de id. Queria que toda vez que o usuário entrasse na tela viesse resultados diferentes. Assim na tela principal sempre teria lojas diferentes. Isso só acontece hoje, quando eu insiro um novo registro na minha tabela.
       
      Agradeço de maais a ajuda de todos.
    • Por Casas Junior
      Galera,

      Estou com uma dúvida que está me matando.. Tenho 2 tabelas que estão relacionadas:
      Usuarios (Campos: id, usuario, datacadastro, sexo, etc.......)
      Tab_Livros (Campos: id, usuario, livro1)

      Quando o usuário faz o login.. ele traz perfeitamente o nome do usuário que está logado, além dos demais dados que contém na Tabela Usuários (data cadastro, sexo.. etc).
      Porém, tudo que está na Tab_Livros, não puxa na session desse usuário que está logado.

      Segue o código de autenticação:
      <?php $usuario=$_POST['usuario']; $senha=$_POST['senha']; $sql = mysqli_query($conn, "SELECT * FROM usuarios WHERE usuario = '$usuario' and senha = '$senha'") or die (mysqli_error()); $row = mysqli_fetch_assoc($sql); if($row > 0) { session_start(); $_SESSION[ 'usuario' ] = $row[ 'usuario' ]; //armazenando usuario $_SESSION[ 'dados_user' ] = $row; //armazenando tudo em forma de array associativo echo "<center>Autenticação OK! Você será redirecionado, Aguarde!</center>"; echo "<script>loginsuccessfully()</script>"; } else { echo "<center>Senha ou User invalidos</center>"; echo "<script>loginfailed()</script>"; } ?>
      Segue a pagina index.php
      <?php include("classe/conexao.php"); $consulta = "SELECT * FROM usuarios INNER JOIN Tab_Livros ON usuarios.usuario = Tab_Livros.usuario LIKE usuarios.usuario and Tab_Livros.usuario = '".$_GET['usuario']."'"; $con = $mysqli->query($consulta) or die($mysqli->error); $usuario=$_GET['usuario']; ?> <?php session_start(); if((!isset ($_SESSION['usuario']) == true)){ unset($_SESSION['usuario']); header('location:login.php'); } ?> <p>Teste de Registros do usuário logado com 2 tabelas</p> <p> </p> <p>Usuário: <?php echo $_SESSION[ 'dados_user' ][ 'usuario' ]; ?><br> Registrou-se em: <?php echo $_SESSION[ 'dados_user' ][ 'datacadastro' ]; ?> <br> <p>Livro (Aqui deve aparecer o dado da Tab_Livros): <?php echo $_SESSION[ 'dados_user' ][ 'livro1' ]; ?>
      Help meeeeeeeeeee!! 
    • Por bernardosaltiel
      SELECT * FROM Cheque t, Cliente rec, Cliente pas, Cliente tit,STATUS s WHERE t.cdTitular = rec.id AND t.cdRecebidoDe = pas.id AND t.cdRepassadoPara = tit.id AND t.cdstatus = s.id
      Tenho esse sql. mas ele não lista os cdrepassado. Para que estão null, quero listar os que tem dados e os que tem campo null.
    • Por dutopfave
      Boa Noite, tenho um sistema de carrinho de compra, mais ajustei para um sistema de vendas/estoque, pega normal, seleciona o produto, tem como atualizar a qtd e excluir, mais o cliente pediu para adicionar um campo q chama valor adicional, q pode ser usado para coloca um valor de frete por exemplo ou taxa (%), ate blz ta certo, mais quando seleciono dois produto, e coloco um valor adicional em 1 dos produtos, ele acaba atualizando os 2 produto, e ele só funciona se coloca o valor no produto em ordem decrescente, se o produto q adiciono primeiro, coloca um valor adicional, ele não funciona, fica como 0, ai se coloca o valor no 2 produto adicionado, ai ele adiciona só q nos dois 2 produto, certo seria mostra o valor adicional no produto desejável, segue o código:
       
      cogido em php que faz todo o funcionamento, foca apenas no  " if(isset($_POST['adicional'])){  "  q é aonde atuliza o valor adicional
      <?php session_start(); if(!isset($_SESSION['carrinho'])){ $_SESSION['carrinho'] = array(); } //adiciona produto //ADICIONAR CARRINHO if($_GET['acao'] == 'add'){ $id = intval($_GET['id']); if(!isset($_SESSION['carrinho'][$id])){ $_SESSION['carrinho'][$id] = 1; }else{ $_SESSION['carrinho'][$id] += 1; } } //REMOVER CARRINHO if($_GET['acao'] == 'del'){ $id = intval($_GET['id']); if(isset($_SESSION['carrinho'][$id])){ unset($_SESSION['carrinho'][$id]); } } //ALTERAR QUANTIDADE if(isset($_POST['up'])){ if(is_array($_POST['prod'])){ foreach($_POST['prod'] as $id => $qtd){ $id = intval($id); $qtd = intval($qtd); if(!empty($qtd) || $qtd <> 0){ $_SESSION['carrinho'][$id] = $qtd; }else{ unset($_SESSION['carrinho'][$id]); } } } } //ALTERAR VALOR ADICIONAL if(isset($_POST['adicional'])){ if(is_array($_POST['prods'])){ foreach($_POST['prods'] as $id => $p_valor_adicional){ $id = intval($id); $p_valor_adicional = intval($p_valor_adicional); if(!empty($p_valor_adicional) || $p_valor_adicional <> 0){ $_SESSION['carrinho'][$id] = $p_valor_adicional; }else{ unset($_SESSION['carrinho'][$id]); } } } } ?>  
      codigo do html e php, com o select listando os produtos:
       
      <div class="row"> <div class="col-lg-12"> <div class="card"> <div class="card-block"> <h4 class="card-title">Resumo do Pedido</h4> <div class="table-responsive m-t-20"> <table class="table stylish-table color-table muted-table"> <thead> <tr> <th>Produto</th> <th class="text-center">Quantidade</th> <th class="text-center">Preço</th> <th class="text-center">Preço Adicional</th> <th class="text-center">Total</th> <th> </th> </tr> </thead> <form action="?id_cliente=<?php echo $_GET['id_cliente']; ?>" method="post"> <tbody> <?php if(count($_SESSION['carrinho']) == 0){ echo '<tr> <td class="center top-20 bottom-40" style="text-align: center; padding: 20px;" colspan="5"><img src="assets/images/icon_cart.fw.png"><br/>Não há produto no carrinho</td> </tr>'; }else{ foreach($_SESSION['carrinho'] as $id => $qtd){ $Seleciona_Produtos = $pdo->prepare("SELECT * FROM tb_sys_produtos WHERE p_id = :id"); $Seleciona_Produtos->bindValue(":id", $id); $Seleciona_Produtos->execute(); if($Seleciona_Produtos->rowCount() > 0){ foreach($Seleciona_Produtos->fetchAll() as $ResAssoc){ $Total += $ResAssoc['p_valor_venda'] * $qtd + $p_valor_adicional; echo '<tr>'; echo '<td class="">'.$ResAssoc['p_nome'].'</td>'; echo '<td class="text-center"><input type="text" size="3" class="text-center" name="prod['.$id.']" value="'.$qtd.'" /></td>'; echo '<td class="text-center">R$ '.number_format($ResAssoc['p_valor_venda'],2,",",".").'</td>'; echo '<td class="text-center"><input type="text" size="10" class="text-center" name="prods['.$id.']" value="'.$p_valor_adicional.'" /></td>'; echo '<td class="text-center">R$ '.number_format($ResAssoc['p_valor_venda'] * $qtd + $p_valor_adicional,2,",",".").'</td>'; echo '<td class="text-center"><a href="?id_cliente='.$_GET['id_cliente'].'&acao=del&id='.$id.'" class="text-inverse btn btn-danger btn-xs" title="" data-toggle="tooltip" data-original-title="Dar Baixa"><i class="ti-trash" style="color:#fff;"></i></a></td>'; echo '</tr>'; } } } ?> <tr> <td><button type"submit" name="up[]" class="btn btn-primary ladda-button" data-style="zoom-out"> <span class="ladda-label fa fa-refresh"></span> Atualizar Quantidade </button> </td> <td><button type"submit" name="adicional[]" class="btn btn-success ladda-button" data-style="zoom-out"> <span class="ladda-label fa fa-refresh"></span> Atualizar Adicional </button> </td> <td></td> <td></td> <td class="text-center"><h5>Subtotal</h5></td> <td class="text-center"><h5><strong>R$<?php echo number_format($Total,2,",","."); ?></strong></h5></td> </tr> <tr> <td>   </td> <td>   </td> <td></td> <td></td> <td class="text-center"><h3>Total</h3></td> <td class="text-center"><h3><strong>R$<?php echo number_format($Total + $taxa,2,",","."); ?></strong></h3></td> </tr> <tr> <td>   </td> <td>   </td> <td></td> <td></td> <td class="text-center"> <a href="fatura_novo_busca.php?id_cliente=<?php echo $_GET['id_cliente']; ?>"><button type="button" class="btn btn-default ladda-button" data-style="zoom-out"> <span class="ladda-label fa fa-search"></span> Nova Busca </button></a></td> <td class="text-center"> <?php if(isset($_POST['enviar'])){ $v_data = date('Y-m-d :H:i:s'); $cliente = $_GET['id_cliente']; $SqlInserirVenda = $pdo->prepare("INSERT INTO tb_sys_vendas (v_codigo, v_cliente, v_valor_total, v_data) VALUES (:v_codigo, :v_cliente, :v_valor_total, :v_data)"); $SqlInserirVenda->bindValue(":v_codigo", $chave_key2); $SqlInserirVenda->bindValue(":v_cliente", $cliente); $SqlInserirVenda->bindValue(":v_valor_total", $Total); $SqlInserirVenda->bindValue(":v_data", $v_data); $SqlInserirVenda->execute(); $vi_id_venda = $pdo->lastInsertId(); foreach($_SESSION['carrinho'] as $ProdInsert => $qtd): $SqlInserirItens = $pdo->prepare("INSERT INTO tb_sys_vendas_itens (vi_id_venda, vi_id_produto, vi_id_cliente, vi_qtd) VALUES (:vi_id_venda, :vi_id_produto, :vi_id_cliente, :vi_qtd)"); $SqlInserirItens->bindValue(":vi_id_venda", $vi_id_venda); $SqlInserirItens->bindValue(":vi_id_produto", $ProdInsert); $SqlInserirItens->bindValue(":vi_id_cliente", $cliente); $SqlInserirItens->bindValue(":vi_qtd", $qtd); $SqlInserirItens->execute(); $calcular = $id; $UpProduto = $pdo->prepare("UPDATE tb_sys_produtos SET p_disponivel_estoque = p_disponivel_estoque - :qtd WHERE p_id = :ProdInsert"); $UpProduto->bindValue(":qtd", $qtd); $UpProduto->bindValue(":ProdInsert", $ProdInsert); $UpProduto->execute(); endforeach; $pagina = 'visualizar_fatura.php?id_fatura='.$vi_id_venda.''; echo "<script>parent.location = '$pagina';</script>"; unset($_SESSION['carrinho']); } ?> <form action="" enctype="multipart/form-data" method="post"> <input type="submit" name="enviar" class="btn btn-danger ladda-button" data-style="zoom-out" value="Finalizar Pedido"> </form></td> </tr> <?php } ?> </tbody> </form> </table> </div> </div> </div> </div> </div>  
    • Por ndias
      alguém sabe como eu faço para criar uma linha igual da imagem anexa para clicar segurando com o botão esquerdo do mouse e arrastar as duas pontas pra esquerda e direita até o valor desejado?

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.

Este projeto é mantido e patrocinado pelas empresas:
Hospedado por: