çççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççç
O que eu entendo daqui é que deves fazer de 3 maneiras distintas
- Subquery (in ou exists)
- INNER JOIN - é o que já tens
- JOIN feito no WHERE
Não faz sentido usar as 3 ao mesmo tempo e não existe “INNER JOIN” no where, o que existe é um join implicito, onde não é usada a palavra JOIN mas é feito select de duas tabelas e as condições de junção estão no where:
select * from disciplina, professor
where disciplina.professor = professor.cpf and professor.nome in 'Luciano Calderoni';
Deixo-te agora o desafio da subquery
1 curtida
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1 curtida
Tem atenção que, apesar de funcionar (ou talvez não, que aquele in deve ser = ), a tua subquery não usa o IN /Exists conforme pretendido:
select *
from disciplina
where disciplina.professor in (select cpf from professor where nome = 'Luciano Calderoni');
Ou então
select *
from disciplina
where exists (select 1 from professor where nome = 'Luciano Calderoni' and disciplina.professor = professor.cpf );
1 curtida
xvcxcvcvbc