“科目”表と“実習”表に対して、次のSQL文を実行した結果、導出される表はどれか。
SELECT 科目.科目番号
FROM 科目, 実習
WHERE 科目.科目番号=実習.科目番号
UNION
SELECT 科目.科目番号
FROM 科目
WHERE 単位数 >= 5
|
|
答え イ
【解説】
問題文のSQL
『SELECT 科目.科目番号
FROM 科目, 実習
WHERE 科目.科目番号=実習.科目番号
UNION
SELECT 科目.科目番号
FROM 科目
WHERE 単位数 >= 5』
は
『SELECT 科目.科目番号
FROM 科目, 実習
WHERE 科目.科目番号=実習.科目番号』
と
『SELECT 科目.科目番号
FROM 科目
WHERE 単位数 >= 5』
の和(UNION)である。
まず、前半のSQL
『SELECT 科目.科目番号
FROM 科目, 実習
WHERE 科目.科目番号=実習.科目番号』
を解くと、実習テーブルの実習番号A1の科目番号2と実習番号A2の科目番号5が両方とも、科目テーブルにあるので
科目番号 |
2 |
5 |
科目番号 |
1 |
2 |
3 |
科目番号 |
1 |
2 |
3 |
5 |
【キーワード】
・UNION
|