2022-09-14
-- ===================================================================================================================================
-- Combinando comandos
-- Vamos reescrever os comandos apresentados nas respostas das questões para otimizar os comandos
-- (combinando comandos SQL).
-- Para efeitos de estudo, muda-se a ordem das perguntas, que será: 1ª, 3ª e 2ª.
-- ===================================================================================================================================
-- Questão: Quais são os nomes e sobrenomes dos funcionarios que passaram por consultas médicas na especialidade de 'Ortopedia'?
-- AR
-- Seleção.: A <- especialidadesmedicas[[txnomeespecialidade='Ortopedia']]
-- Junção..: B <- A [[ A.idespecialidade = m.especialidadeid ]] medicos -> m
-- Junção..: D <- B [[ b.idmedico = c.medicoid ]] consultas -> c
-- Junção..: E <- D [[ D.funcionarioid=F.idfuncionario ]] funcionarios -> F
-- Projeção: E [[ txprenomes, txsobrenome ]]
-- Em SQL
-- Seleção.: A <- especialidadesmedicas[[txnomeespecialidade='Ortopedia']]
create temporary table A as (select * from especialidadesmedicas where txnomeespecialidade='Ortopedia');
-- Junção..: B <- A [[ A.idespecialidade = m.especialidadeid ]] medicos -> m
create temporary table b as (select * from A inner join medicos as M on A.idespecialidade=M.especialidadeid);
-- Junção..: D <- B [[ b.idmedico = c.medicoid ]] consultas -> c
create temporary table D as (select * from B inner join consultas as C on B.idmedico = C.medicoid);
-- Junção..: E <- D [[ D.funcionarioid=F.idfuncionario ]] funcionarios -> F
create temporary table E as (select * from D inner join funcionarios as F on D.funcionarioid=F.idfuncionario);
-- Projeção: E [[ txprenomes, txsobrenome ]]
select txprenomes, txsobrenome from E;