[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