Ola, para este exercicio tentei resolve-lo sim:
SELECT id_aluno, nome FROM Alunos Where id_aluno = ( SELECT id_aluno, notas FROM notas WHERE Nota =10
Daria certo?
Muito obrigada! Claudia
Ola, para este exercicio tentei resolve-lo sim:
SELECT id_aluno, nome FROM Alunos Where id_aluno = ( SELECT id_aluno, notas FROM notas WHERE Nota =10
Daria certo?
Muito obrigada! Claudia
Olá não sei se colocou corretamente ou faltou alguma parte mas o where está incorreto com a subquery.
É possível fazer o que deseja de duas formas:
(A) Correção do que foi feito
SELECT id_aluno, nome
FROM Alunos
WHERE id_aluno IN (
SELECT id_aluno
FROM notas
WHERE nota = 10
);
(B) Usando JOIN
SELECT a.id_aluno, a.nome
FROM Alunos a
JOIN notas n ON a.id_aluno = n.id_aluno
WHERE n.nota = 10;
Ok Muito obrigada em responder.
Realmente o que tinha em mente seria a 1 opcao.Deveria ter colocado IN e nao =. Na subquery coloque (SELECT id_aluno e notas...) Esse notas daria algum erro ou seria apenas excesso de informacao?
Obrigada, Claudia
Olá claudia,
Sim, de fato quando você faz uma subquery com IN ele sempre espeara uma lista de valores, como no código abaixo
SELECT id_aluno, nome
FROM Alunos
WHERE id_aluno IN (1,2,3,4...etc)
Nesse caso, você pode oferecer como lista para o IN uma coluna, nesse caso os valores da coluna serão "transformados em uma lista", por conta disso se você usar duas colunas o comando dará erro, pq de fato não tem como transformar duas colunas em uma lista.