Frage

Hey alle, ich bin dies richtig eine schwierige Zeit Formulierung, welche, warum in Schwierigkeit hat, online eine Antwort zu finden, so das Beste was ich tun kann, ist ein Beispiel geben. Ich habe die folgende Datenbanktabelle:

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

Und ich mag eine SELECT-Anweisung verwenden, die die actornames greifen würden, die in allen von der gleichen Serie spielen, den Schmied in spielt also die resultierende actornames soll.

Costelo, denzel und lopez

Ich bin nicht einmal sicher, welche verwenden Schlüsselwort zu. Ich war bei dem JOIN-Befehl suchen und auch MINUS versucht, die nächsten, die ich bekommen konnte, war actornames, die genau in der gleichen Serie spielen, den Schmied spielt (in dieser Situation lopez nicht inbegriffen und ist falsch)

Hier ist eine andere Erklärung:

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. 

Mit anderen Worten, müssen Sie jene Akteure zurückkehren, dessen Satz von Filmen die Schauspieler Smith enthält.

Sie suchen einen Schubs in die richtige Richtung, Tomek

War es hilfreich?

Lösung

Es tut uns leid. Meine ursprüngliche Antwort misunderstodd Ihre Absicht. Versuchen Sie stattdessen:

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')

Andere Tipps

SELECT DISTINCT ActorName 
    FROM dbo.MyTable
    WHERE SeriesName IN (SELECT SeriesName FROM dbo.MyTable WHERE ActorName = 'smith');
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top