1

質問の題名がわからなかったので、タイトルが間違っていたらすみません。

MovieID私はテーブルに2 つの列を持っていますFormat(もっとありますが、これらは私が注目しているものです。

「フォーマット」列には、「DVD」と「Blu-ray」の 2 種類の値があります。DVD フォーマットのみの映画を選択したいと考えています。Blu-ray および DVD 形式の映画が複数あることに注意してください。これらの値は表示したくありません。私のデータのサンプルについては、以下のフィドルを参照してください。ありがとうございました!!!

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

出力したい

MovieID
------------
1001    
1002     
1004     
4

2 に答える 2

2

これを実現する簡単な方法の 1 つは、次のとおりです。

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

これは、問題の英語の説明を SQL 構文に翻訳したものです。

于 2013-08-20T00:40:11.073 に答える
1
select MovieID
from Table
where Format = 'DVD'
  and MovieID not in (select MovieID from Table where Format <> 'DVD')

適切なインデックスがあれば、優れた DBMS がこれを最適化して非常に効率的なコードにします。

于 2013-08-20T00:40:20.407 に答える