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

平成31年度 春期 午前 問29

データベース

結合に関する問題

“学生”表と“学部”表に対して次の SQL 文を実行した結果として,正しいものはどれか。

学生

氏名所属住所
応用花子理新宿
高度次郎人文渋谷
午前桜子経済新宿
情報太郎工渋谷

学部

学部名住所
工新宿
経済渋谷
人文渋谷
理新宿

〔SQL文〕

SELECT 氏名 FROM 学生, 学部
  WHERE 所属 = 学部名 AND 学部.住所 = '新宿'

選択肢は原典では「氏名」を見出しにした結果表。

答えと解説を見る

✓ これが正解ウ応用花子/情報太郎

解説

新宿にある学部を先に絞り、その所属者を取り出します。

二つの表を並べて書く形は、結合を表します。条件の一つ目は、所属と学部名が等しいことです。これが二つの表をつなぐ手掛かりになります。条件の二つ目は、学部の住所が新宿であることです。住所という名前は両方の表に出てきます。ですから、どちらの表かを頭に付けて指しています。新宿にある学部は、工と理の二つです。工に所属するのは情報太郎、理に所属するのは応用花子です。よって取り出される氏名は、その二人になります。正解の肢は、応用花子と情報太郎を並べています。学生の住所は、この問いでは一度も使われません。表の名を付けずに書くと、どちらの住所か決まりません。名前が重なる列こそ、書き方に気を配ります。等しい値どうしを対応づける形を、等結合と呼びます。先に絞ってから対応づけても、結果は変わりません。

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

出典:平成31年度 春期 基本情報技術者試験 午前 問29

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