“商品”表及び“自社製品”表に対して、次のSQL文を実行した結果、得られる行数はどれか。ここで、表の見出しの下線は主キーを表す。
商品 自社製品
┌────┬─────┐ ┌────┬────┐
│商品番号│ 価 格 │ │商品番号│ 工場 │
├────┼─────┤ ├────┼────┤
│ P1 │ 100 │ │ P1 │ 東京 │
├────┼─────┤ └────┴────┘
│ P2 │ 300 │
├────┼─────┤
│ P3 │ 200 │
└────┴─────┘
【SQL文】
SELECT 商品番号, 価格
FROM 商品
WHERE NOT EXISTS
(SELECT *
FROM 自社製品
WHERE 商品.商品番号 = 自社製品.商品番号)
@ 0 A 1 B 2 C 3 D 4
B
SELECT 商品番号, 価格
FROM 商品
WHERE NOT EXISTS
(SELECT * FROM 自社製品
WHERE 商品.商品番号=自社製品.商品番号) は、
SELECT * FROM 自社製品
WHERE 商品.商品番号 = 自社製品.商品番号
によって、P1,東京 が選択されたタプル以外のものを商品テーブルから選択し、その商品番号と価格を選択する。という意味になる。
従って、P1以外の商品番号、つまり
P2,300
P3,200
の2組のタプルが選択される。
V−13 | 目次 | V−15 |