この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:1
ページ更新者:guest
更新日時:2018-05-08 02:52:32

タイトル: ONとWHEREの違い
SEOタイトル: SQL の ON と WHERE の違い(JOIN 条件)

本稿はONとWHEREの違いについて解説します。

 

ONとWHEREの定義

まずはそれぞれの定義を確認しましょう。

ON:結合条件

WHERE:抽出条件

 

結合条件とはJOINする際(前)に行を限定する条件、

抽出条件とはJOINした後に行を限定する条件となります。

 

具体的にどう変わってくるの?

外部結合をした際に、ONとWHEREの違いで最終的な抽出結果に差が出ます。

 

例えばTABLE_ATABLE_Bがあるとしましょう。

TABLE_A左辺TABLE_B右辺とします。

 

それではLEFT OUTER JOIN(左辺の外部結合)をしてみます。

この際、右辺TABLE_Bに条件を指定します。DATE = 2018/1/1のような条件です。

 

JOINをする前に条件指定(ON)をすると、左辺TABLE_Aは2018/1/1以外のレコードも最終的に抽出されます

対して、JOINをする後に条件指定(WHERE)すると、左辺TABLE_Aは2018/1/1のレコードのみに限定されます。

つまり、左辺の外部結合をする際に右辺をWHERE句で指定しまうと、内部結合と同じ動作となります。