Jump to content
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.
 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

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 Public2004
      Boas. Gostaria da ajuda dos colegas para analisar a possibilidade de otimizar a seguinte situação: Tenho um "select" simples para trazer um registro específico e que atenda uma determinada condição (where) - Após este "select", recupero o "id" deste registro e utilizo para fazer mais dois "select", um para trazer o registro anterior e  outro para o próximo (id) utilizando MIN e MAX. Tem como fazer tudo isso em um único "select" ?
       
      Tks.
    • By danicarla
      Olá gente bom dia...
      tenho um select e gostaria de mudar o valor dele quando o botão do formulário for apertado para "Aguarde"

      Gostaria de fazer isso sem usar jquery
      Acho que é algo simples mas pela busca não achei nada..
       
      <script> function MudarSelect(){ // Mudar o select para AGUARDE } </script> <select name="conteudo" id="conteudo"> <option value="0" disabled selected>-- Selecione</option> <option value="Carros">Carros</option> <option value="Motos">Motos</option> </select> <input type="submit" value="Buscar" onclick="MudarSelect();" />  
    • By agness
      a imagem é uma parte de uma tabela extensa.
      como eu faço uma consulta por exemplo para jogador igual à 1, 3, 5 e liga igual à 1?
      isso é para uma verificação se existe uma liga com exatamente os jogadores 1, 3 e 5, nem mais nem menos
      espero ter sido claro
    • By opl12
      Olá Mestres
      Podem dar uma direção?
      Estou apanhando em algo que aparentemente é fácil
      Preciso: 
                  *Tenho um Banco de Dados com as Colunas: Id, nome, password, data, nivel             ... na coluna "nivel" tem duas informações ou é "staff" ou é "operacao"               *no 1º Select ele vai validar se o usuário e a senha estão corretos conforme no Banco de Dados do PhpMyAdmin             pelas variáveis $nome e $password               *no 2º Select ele valida o nível de acesso, se é "staff" ou "operacao"             se o $nome pertencer a um "staff".. então abre o "Site A"... se pertencer a um "operacao" vai para o "Site B"  
      <!DOCTYPE html> <html lang="pt-br"> <head> <title>Comprovar Usuário</title> <meta charset="utf-8"> </head> <body> <?php try { $base=new PDO("mysql:host=localhost;dbname=painel","root",""); $base->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // ....... select para validar login e senha se estão ok $sql="SELECT * FROM login WHERE nome= :nome AND password= :password"; $resultado=$base->prepare($sql); $nome=($_POST["nome"]); $password=($_POST["password"]); $resultado->bindValue(":nome",$nome); $resultado->bindValue(":password",$password); $resultado->execute(); $numero_registro=$resultado->rowCount(); //Validar Camada de Nível $sql2="SELECT * FROM login WHERE name= :nome AND nivel = 'staff'"; $resultado2=$base2->prepare($sql2); $nome=($_POST["nome"]); $resultado2->bindValue(":nome",$nome); $resultado2->execute(); $numero_registro2=$resultado2->rowCount(); if($numero_registro!=0) { //echo "<h1>Logado com Sucesso</h1>"; ...Se Login e Senha estão ok, então abre a página session_start(); $_SESSION["usuario"] = $_POST["nome"]; header("Location:reports.php"); }else { echo "Senha incorreta, favor verificar! <br><br>"; echo '<a href="index.php">Clique aqui para tentar novamente!</a>'; //header("Location:index.php"); } }catch(Exception $e) { die("Error" . $e->getMessage()); } ?> </body> </html>  
    • By opl12
      Olá Mestres,
      Não achei um tópico com este assunto
       
      No Código abaixo, eu dou um echo e me retorna o valor de um array,
      *que é o resultado de um SELECT feito no Banco de Dados PhpMyAdmin
      *no banco tenho a tabela LOGIN, com as colunas: Nome, Password, Nivel
       
      no PHP eu carrego as variáveis $nome e $password
      com isso eu faço um select com uma condição na coluna "nivel" .. para me trazer apenas o resultado onde consta a palavra "staff" na coluna "nivel"
       
      ao dar um echo:
      echo $key.": ".$value."<br>";  
      o PHP me retorna:
      nome: jeferson
      password: 123
      nivel: staff
       
      ***a pergunta:
      Tem como eu gravar o resultado da coluna "nivel" ( que neste caso é "staff" ) em uma variável?? ao ponto de dar um echo e aparecer apenas a palavra "staff" ?
       
      Se puderem me ajudar, já agradeço
       
      <!DOCTYPE html> <html lang="pt-br"> <head> <title>Comprovar Usuário</title> <meta charset="utf-8"> </head> <body> <?php $nome = "jeferson"; $password = "123"; try { $base=new PDO("mysql:host=localhost;dbname=painel","root",""); $base->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql="SELECT nome, password, nivel FROM login WHERE nome= :nome AND password= :password"; $resultado=$base->prepare($sql); $resultado->bindValue(":nome",$nome); $resultado->bindValue(":password",$password); $resultado->execute(); $result = $resultado->fetch(PDO::FETCH_ASSOC); foreach ($result as $key => $value) { echo $key.": ".$value."<br>"; } }catch(Exception $e) { die("Error" . $e->getMessage()); } ?> </body> </html>  
       
       
       
×

Important Information

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