過去問解きまくり研究所 ホーム

平成28年度 秋期 午前 問29

データベース

副問合せに関する問題

“サッカーチーム”表と“審判”表から,条件を満たす対戦を導出する SQL 文の a に入れる字句はどれか。

〔条件〕
・出場チーム 1 のチーム名は出場チーム 2 のチーム名よりもアルファベット順で先にくる。
・審判は,所属チームの対戦を担当することはできない。

原典の表(上に文字で写した):

サッカーチーム

チーム名
X
Y
Z

審判

氏名所属チーム名
佐藤健太X
鈴木翔太Y
高橋拓也Z

対戦

出場チーム 1出場チーム 2審判氏名
XY高橋拓也
XZ鈴木翔太
YZ佐藤健太

〔SQL 文〕

SELECT A.チーム名 AS 出場チーム 1, B.チーム名 AS 出場チーム 2,
    C.氏名 AS 審判氏名
    FROM サッカーチーム AS A, サッカーチーム AS B, 審判 AS C
    WHERE A.チーム名 < B.チーム名 AND   a
答えと解説を見る

✓ これが正解イC.所属チーム名 NOT IN (A.チーム名, B.チーム名)

解説

審判の所属が二つの出場チームと違う条件です。

設問は、二つの条件を満たす対戦を導く SQL 文の空欄を埋めさせています。条件のうちアルファベット順の並びは、既に書かれているチーム名どうしの大小比較で満たされています。したがって空欄に入るのは残りの条件だけです。日本語に直すと、審判の所属チーム名が、出場する二つのチーム名のどちらとも一致しない、となります。これをそのまま表すのが、所属チーム名を二つのチーム名の並びに対して NOT IN で否定する書き方です。三通りの組合せに当てはめると、担当できる審判がそれぞれ一人ずつ残り、示された対戦の三行と過不足なく一致します。なお、副問合せを含む候補を読むときは、外側の審判 C の列を参照しているかを最初に見ます。参照していなければ審判ごとに結果が変わらないので、審判の絞り込みの役に立ちません。

ほかの選択肢はなぜ違うのか

この問題の用語

出典:平成28年度 秋期 応用情報技術者試験 午前 問29

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)