「名簿」、「委員会」、「委員」の3つのテーブルがあり、それぞれの関係スキーマは次のように与えられている。
名簿 (委員ID, 委員名, 委員出身)
委員会 (委具会ID, 委具会名)
委員 (委員会ID, 委員ID, 担当時間)
次の2つのSQL文が常に同じ結果となる (ア) と (イ) の組合せを、@〜Dの中から選べ。
SELECT 名簿.委員会 FROM 名簿, 委員
WHERE 名簿.委員ID = 委員.委員ID AND
(ア) (SELECT 委員.委員ID FROM 委員会, 委員
WHERE 委員会.委員会ID = 委員.委員会ID
AND 委員会.委員会名 = '予算') ;
SELECT 名簿.委員名 FROM 名簿, 委員
WHERE 名簿.委員ID IN
(SELECT 委員.委員ID FROM 委員会, 委員
WHERE 委員.委員会ID = 委員.委員会ID AND (イ) ;
ア イ
@ 名簿.委員ID = 委員会.委員会名 <> '予算'
A 名簿.委員ID = 委員会.委員会名 = '予算'
B 名簿.委員ID NOT IN 委員会.委員会名 <> '予算'
C 委員.委員ID NOT IN 委員会.委員会名 = '予算'
D 委員.委員ID IN 委員会.委員会名 <> '予算'
B
@ アは、括弧の中の要素と一致することを条件とするには = は使えず、INを使う。
A @と同様である。
B 正しい。どちらも委員会名が予算でない行を選択する。
C アは、NOT IN () であり、委員会名が予算でない行を選択するのに対し、イは = を使っており、委員会名が予算である行を選択する。
D アは、IN () であり、委員会名が予算である行を選択するのに対し、イは <> を使っており、委員会名が予算でない行を選択する。
W−18 | 目次 | W−20 |