2013-08-20 4 views
1

Je n'étais pas sûr de savoir comment nommer cette question, alors je m'excuse si le titre est trompeur.Sélection de valeurs basées sur d'autres valeurs SQL?

J'ai deux colonnes dans un tableau MovieID et Format (j'ai plus, mais ce sont ceux que je me concentre sur

Il existe deux types de valeurs dans la colonne « Format ». « DVD » et 'Blu-ray' Je veux sélectionner les films qui ont UNIQUEMENT le format DVD Notez qu'il existe plusieurs films qui ont le format Blu-ray et DVD, je ne veux pas afficher ces valeurs.Voir le violon ci-dessous pour un échantillon de mes données. Merci !!!

http://sqlfiddle.com/#!2

MovieID | Format 
----------------- 
1000 DVD 
1000 DVD 
1000 Blu-ray 
1001 DVD 
1001 DVD 
1002 DVD 
1003 DVD 
1003 Blu-ray 
1004 DVD 

JE VEUX SORTIE

MovieID 
------------ 
1001  
1002  
1004  
+0

Le lien vers SQLFiddle ne fonctionne pas :( – dasblinkenlight

+1

Vous avez tellement changé la question que les réponses actuelles n'ont plus de sens, il vaudrait mieux en écrire une nouvelle au lieu de remplacer l'ancienne. les personnes qui ont répondu à votre question originale – xwoker

+0

Si vous avez une nouvelle question, veuillez la poster comme une nouvelle question Supprimer la réponse précédemment acceptée, puis réécrire la question originale à partir de zéro est juste du vandalisme et cause beaucoup de confusion (je viens de recevoir la notification que j'ai perdu le rep sur ma réponse acceptée étant enlevée). –

Répondre

2

Une façon simple d'y parvenir est la suivante:

SELECT DISTINCT (MovieID) 
FROM Movies m 
WHERE Format='DVD' 
AND NOT EXISTS (
    SELECT * FROM Movies mm WHERE mm.MovieID=m.MovieID AND mm.Format='Blu-ray' 
) 

C'est à peu près une traduction de la description anglaise du problème à la syntaxe SQL.

1
select MovieID 
from Table 
where Format = 'DVD' 
    and MovieID not in (select MovieID from Table where Format <> 'DVD') 

Ne vous inquiétez pas si cela semble inefficace, si vous avez des index appropriés un bon SGBD optimiser ce en code très efficace.

Questions connexes