Jump to content


Photo

Dúvida De Iniciado Em Sql


  • Faça o login para participar
3 replies to this topic

#1 muek

muek

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

Posted 29/01/2008, 13:27

Oi,

Tenho uma dúvida no SQL. Eu tenho um relacionamento simples entre duas tabelas Professores e Alunos de N para N. Então eu quero extrair o nome dos professores que n têm alunos.

Fiz o seguinte:

SELECT nome
FROM Professores
WHERE (SELECT count(Professores.id_professor)
FROM Alunos, Prof_Alunos, Professores
WHERE Alunos.id_aluno=Prof_Alunos.id_aluno And Prof_Alunos.id_professor=Professores.id_professor) = 0

Mas n estou dando com o resultado.

Alguém me pode ajudar? ;)

#2 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 29/01/2008, 13:56

SELECT DISTINCT professor.nm_professor
FROM professor LEFT JOIN prof_aluno ON prof_aluno.cd_professor = professor.cd_professor
WHERE prof_aluno.cd_aluno IS NULL
ORDER BY 1
Se eu não me embananei, é isso ;)

Edição feita por: boirock, 29/01/2008, 13:58.


#3 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 29/01/2008, 20:27

Veja se seu SGBD tem a claúsula EXISTS/NOT EXISTS.
O que o boirock postou é o recurso usado quando não se tem o recurso que mencionei.
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#4 muek

muek

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

Posted 30/01/2008, 09:49

SELECT DISTINCT professor.nm_professor
FROM professor LEFT JOIN prof_aluno ON prof_aluno.cd_professor = professor.cd_professor
WHERE prof_aluno.cd_aluno IS NULL
ORDER BY 1
Se eu não me embananei, é isso ;)



Obrigado boirock, era isso mesmo. ;)




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq