Previous: テーブルの結合
Up: ジョイン
Next: 三つのテーブルのジョイン
Previous Page: テーブルの結合
ジョインとの関わりでより重要なことは、この例の中に現れている、「出版社一覧.出
版社」とか、「書籍台帳.書名」といった項目名の指定の仕方である。
一般には、「テーブル名.項目名」といった形式で用いられ、その項目が、どのテーブル
中の項目であるかを指定する。例えば、「出版社一覧.出版社」とは、テーブル「出版社
一覧」中の項目「出版社」という意味であり、「書籍台帳.書名」というのは、テーブル
「書籍台帳」中の項目「書名」という意味である。こうした項目名の指定の仕方を、「
項目名の修飾」と呼ぶ。今までこの「項目名の修飾」という形式が現れてこなかった
のは、selectで用いられるテーブルが、一つしかなかったからに他ならない。実は、先
の例では、「出版社一覧.出版社」や「書籍台帳.書名」といった項目名の修飾は、冗長
である。というのも、二つのテーブルの中で、「出版社」「書名」といった項目名は、
一方のテーブルにしか現れないからである。一方、「書籍台帳.出版社コード = 出版社
一覧.出版社コード」の部分での項目名の修飾は必須である。なぜなら、二つのテーブ
ルのいずれにも、「出版社コード」という項目が含まれているからである。
通常、ジョインは、二つのテーブルを、両方に共通に含まれる項目の所で、その項目
の値が等しくなるように行を選んで張り合わせたものであるから、項目名の修飾は必要
である。
もう一つジョインの例を見てみよう。
このデータベースでは、本の摘要は、「書籍台帳」にではなく、それとは別のテーブル
「内容一覧」に収められている。この二つのテーブルは、それぞれの本に一意的に付け
られた「書籍番号」というコードを共有している。この二つのテーブルのジョイ
ンは、この「書籍番号」を通して行われることになる。例31の検索は、書名の中
にUNIXというキーワードを含むものの検索であったが、今度の検索は、内容の中に、
UNIXというキーワードを含むものを検索する。
select 書名 from 書籍台帳,内容一覧 where 内容 like '%UNIX%' and 書籍台帳.書籍番号 = 内容一覧.書籍番号
二つのテーブルを結び付ける、「書籍台帳.書籍番号 = 内容一覧.書籍番号 」という形に注目して欲しい。
maruyama@wakhok.ac.jp