Consultar tabelas 1 e 2 e trazer apenas os dados que não estão na tabela 2.

SQL

MySQL

31/10/2016

Olá pessoal, boa noite!


O que preciso é bem simples (mas não sei fazer) e acredito que alguém consiga me ajudar por aqui.


Na tabela 1 e 2 tenho os campos: "id_aluno" e "id_curso".


Preciso de uma consulta na qual me retorne apenas os dados que não existem na tabela 2, mas existem na tabela 1.


Desde já, agradeço a atenção ajuda!
Myller Meireles

Myller Meireles

Curtidas 0

Melhor post

Myller Meireles

Myller Meireles

03/11/2016

Bom dia
Então esse select faz isso tens que colocar os valores de acordo com o Seu select ele faz justamente isso verifica na segunda tabela se exist aquele valor ou não

select id_aluno, id_curso
From montar_turma M
WHERE Not EXISTS(SELECT id_aluno, id_curso FROM md_aluno_curso WHERE id_aluno= M.id_aluno AND id_curso = M.id_curso)

Deve ser algo bem parecido com esse select acima
ele pega os valores de uma tabela e verifica se contem na tabela seguinte dentro da clausula not exists

Valeu
Qualquer coisa retorne aqui que tento fazer outro


Fala Jeferson,

Depois, com mais calma eu testei e bingo!!!!

Tudo certinho!!!

Mto obrigado!
GOSTEI 1

Mais Respostas

Myller Meireles

Myller Meireles

31/10/2016

Alguém aí me dá um help...?

Olá pessoal!


O que preciso é bem simples (mas não sei fazer) e acredito que alguém consiga me ajudar por aqui.


Na tabela 1 e 2 tenho os campos: "id_aluno" e "id_curso".


Preciso de uma consulta na qual me retorne apenas os dados que não existem na tabela 2, mas existem na tabela 1.


Desde já, agradeço a atenção ajuda!
GOSTEI 0
Jones Granatyr

Jones Granatyr

31/10/2016

Opa, poderia ser mais ou menos assim

select * from tabela2 where idtabela2 not in (select idtabela1 from tabela1)

Basicamente está pegando os registros da tabela 2 onde o ID não está na tabela
GOSTEI 0
Myller Meireles

Myller Meireles

31/10/2016

Fala Jones...


Vou testar com sua sugestão.


No seu exemplo, você usa apenas um campo de cada tabela, mas preciso que os campos "id_aluno" e "id_curso" sejam consultados. Esses campos existem nas duas tabelas.


Vou adequar a consulta pra minha necessidade e aviso aqui o resultado.


Obrigado!
GOSTEI 0
Jeferson Taboni

Jeferson Taboni

31/10/2016

Bom poderias fazer algo mais ou menos parecido com o que tenho abaixo apenas setando os dois campos qeu você desejar consultar..
Lembrando que abaixo foi feito com o SLQServer, não sei qual banco estais usando, mais tente algo parecido

select CdProduto
From Produtos P
WHERE Not EXISTS(SELECT CdProduto FROM ProdutoDevolucao WHERE CdProduto = P.CdProduto)
GOSTEI 0
Myller Meireles

Myller Meireles

31/10/2016

Fala Jeferson,

Sua consulta funcionou, mas não é o que eu preciso.

Antes disso, respondendo sua dúvida, o meu banco é o MySQL.

Pra melhor entendimento, tenho as seguintes tabelas:

"montar_turma" e "md_aluno_curso"

Nessas duas tabelas, dentre outros campos, tenho os campos "id_aluno" e "id_curso" nas duas tabelas.

O que preciso:

Que a consulta me mostre quais desses alunos (id_aluno e id_curso) não estão na tabela "md_aluno_curso", pois na tabela "montar_turma" eles são cadastrados por padrão.

Acho que agora consegui me explicar melhor!

Valeu...
GOSTEI 0
Jeferson Taboni

Jeferson Taboni

31/10/2016

Bom dia
Então esse select faz isso tens que colocar os valores de acordo com o Seu select ele faz justamente isso verifica na segunda tabela se exist aquele valor ou não

select id_aluno, id_curso
From montar_turma M
WHERE Not EXISTS(SELECT id_aluno, id_curso FROM md_aluno_curso WHERE id_aluno= M.id_aluno AND id_curso = M.id_curso)

Deve ser algo bem parecido com esse select acima
ele pega os valores de uma tabela e verifica se contem na tabela seguinte dentro da clausula not exists

Valeu
Qualquer coisa retorne aqui que tento fazer outro
GOSTEI 0
Jeferson Taboni

Jeferson Taboni

31/10/2016

Que bom
Fico feliz em ter conseguido ajudar
Abc
GOSTEI 0
POSTAR