[firebase-br] Ajuda com Select

Eduardo Bahiense eduardo em icontroller.com.br
Dom Out 14 22:24:40 -03 2007


Olá Phelen

Procure se inteirar do uso de EXISTS. Isso quebra um grande galho em 
diversas situações.
No seu caso, algo assim resolveria:

SELECT
   A.IDALUNO, A.NOME
FROM
   ALUNOS A
WHERE
   NOT EXISTS(SELECT 1 FROM CURSOS WHERE IDALUNO = A.IDALUNO)

Não se esqueça de verificar se existe um índice em IDALUNO na tabela 
CURSOS para manter a performance.

[]s Eduardo

Phelen Harg escreveu:
> Tenho uma tabela de alunos
> 
> CREATE TABLE ALUNOS (
> ID NUMERIC(15,0) NOT NULL,
> NOME VARCHAR(200),
> ENDERECO VARCHAR(400),
> );
> 
> e outra de curso
> 
> CREATE TABLE ALUNOS CURSOS (
> IDALUNO NUMERIC(10,0) NOT NULL,
> IDCURSO NUMERIC(10,0) NOT NULL,
> ID NUMERIC(10,0) NOT NULL,
> );
> 
> Preciso mostrar os alunos q nao tem determinado curso, porem se uso INNER
> JOIN
> CODE
> Select A.* from ALUNOS A INNER JOIN PESSOASCURSOS PC ON (not PC.idcursos =
> '1' AND PC.idaluno = P.ID)
> 
> e tiver mais q um curso ele acaba mostrando os outros cursos, o que quero é
> q ele mostre somente os alunos q nao tem esse curso. Como deveria fazer essa
> SQL?
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 





Mais detalhes sobre a lista de discussão lista