Olá, estou dando manutenção em um sistema que possui uma tabela para cada nível de acesso.

Ao fazer Login tenho que verificar o campo de CPF em todas as tabelas para que possa identificar o nível de acesso do individuo. Atualmente quem fez colocou 3 consultas diferentes pra verificação.

$var->exeQuery("SELECT cpf FROM nive11 WHERE cpf=$cpf");
$var->exeQuery("SELECT cpf FROM nive13 WHERE cpf=$cpf");
$var->exeQuery("SELECT cpf FROM nive12 WHERE cpf=$cpf");

Mais acho que posso otimizar essa consulta em uma única utilizando JOIN, porém tou fazendo algo errado já que não retorna resultado nenhum...



perguntado 24 Fev '11, 09:42

hugojunior's gravatar image

hugojunior
4962318
taxa de aceitação: 30%

fechada 25 Fev '11, 20:16

Hugo, você poderia marcar a pergunta correta?! Não é preciso fechar pergunta! Obrigado.
(25 Fev '11, 20:40) MarceloC
Sim já marquei a correta apesar das duas serem, e coloquei como fechado para ser algo tipo "RESOLVIDO". Mais re-abri. Valeu!
(25 Fev '11, 22:06) hugojunior

3 Respostas:

SELECT cpf FROM nive11 WHERE cpf=$cpf UNION SELECT cpf FROM nive13 WHERE cpf=$cpf UNION SELECT cpf FROM nive12 WHERE cpf=$cpf

link permanente

respondido 25 Fev '11, 16:37

Joseph's gravatar image

Joseph
5612
taxa de aceitação: 100%

Hugo,

veja se isso funciona para você:

SELECT cpf FROM nive11 WHERE cpf=$cpf
UNION ALL 
SELECT cpf FROM nive12 WHERE cpf=$cpf
UNION ALL 
SELECT cpf FROM nive13 WHERE cpf=$cpf

Se a informação é diferente e você quer join ao inves de union:

SELECT nive11.cpf, nive12.cpf, nive13.cpf FROM nive11
LEFT JOIN nive12 
ON nive11.cpf = nive12.cpf
LEFT JOIN nive13
on nive12.idd = nive13.cpf
WHERE cpf=$cpf

Boa sorte!

link permanente

respondido 25 Fev '11, 14:40

Clayton's gravatar image

Clayton
6195719
taxa de aceitação: 72%

Valew Clayton e Joseph, consegui utilizando o UNION, apesar de ser meio POG deve melhorar a performance até que seja todo reefeito.

$as->exeQuery("SELECT cpf FROM bs_gerentes WHERE cpf='".$cpf."' UNION SELECT cpf FROM bs_tutores WHERE cpf='".$cpf."' UNION SELECT cpf FROM bs_alunos WHERE cpf='".$cpf."'");
link permanente

respondido 25 Fev '11, 16:48

hugojunior's gravatar image

hugojunior
4962318
taxa de aceitação: 30%

Sua resposta
trocar pré-visualização

Siga essa pergunta

Por Email:

Uma vez que você se logar você poderá se inscrever para qualquer atualização aqui

Pelo RSS:

Respostas

Respostas e Comentários

Básico do Markdown

  • *itálico* ou _itálico_
  • **negrito** ou __negrito__
  • link:[texto](http://url.com/ "título")
  • imagem?![alt texto](/path/img.jpg "título")
  • lista numerada: 1. Foo 2. Bar
  • para adicionar uma quebra de linha apenas adicione dois espaços no final da linha anterior.
  • Tags HTML básicas são permitidas

Tags de perguntas:

×5
×2
×1
×1

pergunta feita: 24 Fev '11, 09:42

pergunta foi vista: 31,036 vezes

última atualização: 25 Fev '11, 22:06