Estou com uma dúvida em uma questão discursiva de banco de dados de um concurso. Tenho as seguintes tabelas:
GRAVADORA com os atributos CodGravadora, NomeGravadora e UFGravadora.
CD com os atributos CodCD, NomeCD, PrecoCD e DataLancamentoCD.
MUSICA com os atributos CodMusica, NomeMusica e DuracaoMusica.
AUTOR com os atributos CodAutor e NomeAutor.
CDGRAVADORA com os atributos CodCD e CodGravadora.
MUSICACD com os atributos CodCD e CodMusica.
MUSICAAUTOR com os atributos CodMusica e CodAutor.
A questão pede: Depois da morte do autor Maicol Diequison, todos os CDs com suas músicas tiveram um aumento no preço em torno de 10%. Nesse caso penso que devo fazer um update na tabela CD. Minha dúvida é se eu posso botar um WHERE com um select fazendo os JOINS nas tabelas que vão sendo utilizadas no decorrer do script. Fiz o seguinte (mas nem rodei por dúvidas):
-
Depois da morte do autor Maicol Diequison, todos os CDs com suas músicas tiveram um aumento no preço em torno de 10%
update CD set PrecoCD = cd.PrecoCD*0.1 where (
select CodCd, CodMusica from MUSICACD mcd
INNER JOIN MUSICAAUTOR ma ON
ma.CodMusica = mcd.CodMusica
INNER JOIN AUTOR au ON
au.CodAutor = ma.CodAutor AND au.NomeAutor = 'Maicol Diequison’
INNER JOIN CD cd ON
cd.CodCd = mcd.CodCd)
Não quero código pronto, pois estou estudando pra concurso, quero apenas a luz de como resolver esse exercícios. Gracias!