O banco de dados é Oracle XE.
Deixe-me explicar o cenário primeiro,
Duas tabelas Movie
e UserInfo
estão em uma relação muitos para muitos usando a tabela de junção Rating
.
Rating
( MovieID
(FK), UserName
(FK), Rating
)
MovieID
e UserName
são, respectivamente, as chaves primárias nas tabelas respeitadas.
O que estou tentando fazer é fazer uma select
declaração para selecionar os MovieNames da tabela Movie onde UserName não é igual à entrada fornecida. Como o MoveID era o FK, mas preciso recuperar o MovieName se o filme ainda não foi classificado pelo usuário GIVEN, então acho que posso precisar fazer uma operação de junção bastante complexa - que não consigo descobrir ou talvez junte duas ou mais consultas diferentes usando where.
Agradecemos antecipadamente e, se possível, dê uma explicação sobre a solução.
Este parece ser um caso de uso clássico para o not exists
operador:
SELECT *
FROM movie m
WHERE NOT EXISTS (SELECT *
FROM rating r
WHERE r.movideid = m.moveid AND
r.username = 'given username here')
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras