Pergunta

Olá a todos, estou tendo uma redacção momento difícil isso corretamente que é por isso que estou tendo dificuldades para encontrar uma resposta online, por isso o melhor que posso fazer é dar um exemplo. Eu tenho o banco de dados tabela seguinte:

ACTORNAME                      SERIESNAME
------------------------------ ------------
baldwin                        found
baldwin                        lost
baldwin                        rocks
baldwin                        sienfield

costelo                        friends
costelo                        prince
costelo                        remember
denzel                         friends
denzel                         prince
denzel                         remember

fox                            found
fox                            friends
fox                            prince
lopez                          found
lopez                          friends
lopez                          prince
lopez                          remember

pitt                           er
pitt                           everybody
pitt                           friends
pitt                           heroes
pitt                           rocks
smith                          friends
smith                          prince
smith                          remember

E eu gostaria de usar uma instrução SELECT que iria pegar os actornames que o jogo em todos da mesma série que Smith interpreta em Então os actornames resultantes devem ser:.

Costelo, Denzel, e Lopez

Eu não estou mesmo certo que palavra-chave para uso. Eu estava olhando para o comando JOIN e também tentou MINUS, o mais próximo que eu poderia obter foram actornames que desempenham exactamente nas mesmas séries que Smith interpreta (nessa situação, lopez não está incluído e é errado)

Aqui está outra explicação:

suppose Smith acts in movies X and Y.
Suppose also that actor 

A acts in movies X, Z
B acts in Y
C acts in X, Y, Z
D acts in X, Y

The answer to the query should be actors C and D. 

Em outras palavras, você tem que devolver os atores cujos conjunto de filmes contêm os de ator Smith.

À procura de um empurrão na direção certa, Tomek

Foi útil?

Solução

Sorry. Minha resposta original misunderstodd sua intenção. Tente isto em vez disso:

select   t2.actorname, 
         count(t2.seriesname) 
from    mytable t1 
join    mytable t2 
on      t1.seriesname=t2.seriesname and t1.actorname='smith' and t2.actorname <> 'smith' group by t2.actorname 
having  count(t2.seriesname)=(select count(seriesname) from mytable where actorname='smith')

Outras dicas

SELECT DISTINCT ActorName 
    FROM dbo.MyTable
    WHERE SeriesName IN (SELECT SeriesName FROM dbo.MyTable WHERE ActorName = 'smith');
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top