トップページ >  Oracle SQL >  on句での結合
初版2006/07/28: 最終更新日2006/07/28
  on句での結合
目次
on句での結合
on句での結合
自然結合では、同じ列名で同じデータ型の列で結合しますが、同じ列名で同じデータ型の列が複数存在する場合は、全て結合条件になってしまいます。
using句での結合では、自然結合のように同じ列名で同じデータ型の列を全て結合するのではなくそのうちの一つもしくはいくつかで結合したい場合に使用します。
これに対してon句での結合とは、異なる列名での結合を行いたい場合に使用します。
onの書式は

select   列名
from     table1 join table2
on 条件式;

となります。on句での結合の場合も、natural joinではなく、joinになっている点に注意してください。
結合したい列が複数存在する場合は、 on 条件式1 and 条件式2 というようにANDもしくはORで複数条件指定します。

on句での結合には注意する点がいくつかあります。
まず、on句の条件式は表の結合条件のみになります。検索条件はon句以降のwhere句でしていします。
ですので、on句を使用したSQL文は結合条件と検索条件を記述する句が異なるため非常に見やすいSQL文になります。
以下はwhere句がある場合の書式例です。whereの変わりにandを指定することも出来ます。

select   列名
from     table1 join table2
on table1.id = table2.id
where table1.id  < '1000'