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 rodriguesrj
      Senhores, bom dia.
       
      Estou com um problema e não estou conseguindo resolver.
       
      Tenho uma página chamada abrir_revista.php. Nesta página, tenho uma combobox que mostra os dados concatenados de 2 tabelas.
       
      ______________________________________________página abrir_revista.php______________________________________________________________________________________________________________________
      <form action="abrir_revista_cod.php" method="POST">
                 
                      <select name="revistaid" id="revistaid">
                              <?php
                                          
                                          $arr = array();
                                          setlocale(LC_ALL, "ptb");            
                                          $query = $con->query("SELECT A.REVISTAID, if(a.codreferencia=5,if(a.mesreferencia is null,  concat(b.dscreferencia,' de ',MONTHNAME(CONCAT('2011-',a.nroreferencia,'-01')),' de ',a.nroano), if(a.mesreferencia=2,concat('Meses de ',MONTHNAME(CONCAT('2011-',a.nroreferencia,'-01')),' e ',MONTHNAME(CONCAT('2011-',a.nroreferencia+1,'-01')),' de ',a.nroano),concat('Meses de ',MONTHNAME(CONCAT('2011-',a.nroreferencia,'-01')),', ',MONTHNAME(CONCAT('2011-',a.nroreferencia+1,'-01')),' e ',MONTHNAME(CONCAT('2011-',a.nroreferencia+2,'-01')),' de ',a.nroano))), if(a.codreferencia=6, if(a.nroreferencia=1, concat(a.nroreferencia,'&#170; ',b.dscreferencia,' de ',MONTHNAME(CONCAT('2011-',a.mesreferencia,'-01')),' de ',a.nroano), concat(a.nroreferencia,'&#170; ',b.dscreferencia,' de ',MONTHNAME(CONCAT('2011-',a.mesreferencia,'-01')),' de ',a.nroano)), if(a.codreferencia=1, if(a.nroreferencia=1, concat(a.nroreferencia,'º ',b.dscreferencia,' de ',a.nroano), concat(a.nroreferencia,'º ',b.dscreferencia,' de ',a.nroano)), if(a.codreferencia=3, concat(a.nroreferencia,'º ',b.dscreferencia,' de ',a.nroano), b.dscreferencia)))) DESCRICAO FROM tb100_revista a, tb101_referencia b where b.codreferencia = a.codreferencia;");
                                              
                                              echo '<option value="0"></option>';
                                              
                                              while ( $row = $query->fetch_assoc() )
                                              {             
                                                  echo '<option value="'. ($row['REVISTAID']) . ' - ' . utf8_encode($row['DESCRICAO']) .'">' . utf8_encode($row['DESCRICAO']) . '</option>' . "\n" ;        
                                              }
                 
                                      ?>           
                      </select>       
                      
                      <input type="submit" value="Enviar">  
                                                  
                </form> 
      ________________________________________________________final código abrir_revista.php________________________________________________________________________________
       
      Eu seleciono a opção desejada e imprimo em outra página. o Trecho do php da página abrir_revista_cod.php
       
      ______________________________________________________página abrir_revista_cod.php_________________________________________________________________________
       
       
      <?php
                 echo $_POST['revistaid']; //imprimi os 2
      ?>
       
      ______________________________________________________final código abrir_revista_cod.php_________________________________________________________________________
       
       
       
      Do jeito que está, funciona imprimindo o ID da tabela e a Descrição. Eu preciso imprimir apenas a Descrição.
       
      Se alguem puder me ajudar. Se precisarem de mais informações, eu passo.
       
      Desde já agradeço,
       
       
    • Por oliver_33
      Olá pessoal,
      Tenho o seguinte codigo, simplificado:
      <script>var pages=5;</script>
      $sql = "SELECT * FROM ".$datatable." ORDER BY id ASC LIMIT 2, <script>document.write(pages);</script>";
      A var pages é javascript que no final não retorna nenhum valor da base de dados.
      Se colocar o valor 5 em vez do script já funciona:
      $sql = "SELECT * FROM ".$datatable." ORDER BY id ASC LIMIT 2, 5";
      outra coisa estranha é se fizer um echo, imprime tal e qual a mesma coisa:
      echo "SELECT * FROM ".$datatable." ORDER BY id ASC LIMIT 2, <script>document.write(pages);</script>";
      o resultado é:
      SELECT * FROM binar ORDER BY id ASC LIMIT 2, 5
      Está tudo correto! Não vejo porque não funciona!!
      alguém me pode ajudar?
    • Por Marcelo Pereira da Costa
      Boa Dia pessoal
      Preciso de uma ajuda
      Eu tenho 3 tabelas (tab1, tab2 e tba3) em que preciso contar o numero de registros (reg1, reg2 e reg3) de cada uma delas, e estes registros devem ser armazenados em uma outra tabela (TabInfo)
       
      A contagem pode ser feito com o SELECT COUNT(*), mas o meu problema é adicionar estes registros na nova tabela (TabInfo).
       
                     TabInfo
      ___________________________
      campo1  campo2  campo3
      ___________________________
          reg1         reg2        reg3 
       
      Muito obrigado pessoal
    • Por Enlibra
      Olá,
      Pedia a vossa ajuda, pois já tentei de inumeras maneiras e não consigo dar a volta a este problema.
      Tenho um text (minuta de contrato) gravado num campo  de texto no mysql e queria que quando fizesse o mysql query select pudesse preencher automáticamente o contrato com os dados da empresa.
      Ex: "O cliente ________________ com a sede social em ______________". Em que os campos em espaço seriam preenchidos com os dados da tabela clientes. Já tentei '.$cliente'. <? echo $cliente ;?> entre outros mas nada.
      Alguém pode me ajudar por favor?
    • Por Marcelo Pereira da Costa
      Boa Tarde pessoal
      Preciso de uma ajuda
      Eu tenho 3 tabelas em que preciso contar o numero de registros de cada uma delas tab1, tab2 e tba3.
      O que pode ser feito rapidamente com SELECT count(*) tab1
       
      Mas eu preciso armazenar estes registros de cada tabela acima em uma outra tabela (Resultado). que tem os campos: Reg1, Reg2 Reg3.
      Sendo que nesta tabela Resultado, os números dos registros das tabelas tab1, tab2 e tab3 devem estar respectivamente armazenados nos campos Reg1, Reg2 Reg3 .
       
      Muito obrigado desde já
       
       
×

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: