データベーススペシャリスト暗記無料で始める

ON句とWHERE句の違いとは?おんくとうぇあくのちがい

ON句とWHERE句の違いとは、SQLの評価は、FROM句とON句で結合してからWHERE句で絞る、という順に決まっている。外部結合ではこの二段の間にNULL補完が挟まるため、相手表への条件をON句に置けば補完された行が残り、WHERE句に置くとその行がNULLとの比較で真にならず消える。内部結合ではNULL補完が起きないので、どちらに書いても結果は同じになる。

最終更新:2026-10-06

試験情報

データベーススペシャリスト試験の頻出用語/午前II

別名:ON句、WHERE句の違い

データベースSPを最短で暗記・合格する →

背景

SQLは処理の手順ではなく欲しい結果を書く言語なので、記述の順序ではなく決められた評価の順序で解釈される。この順序を意識していないと、外部結合の件数が想定と合わない理由を説明できず、条件を場当たりに動かして偶然合った形を採用することになる。記述式では、その条件をなぜその句に置いたのかまで書かせる形で問われる。

具体例

会員表に予約表を左外部結合して、会員ごとの今月の予約件数を一覧にする場面を考える。予約日の条件をON句に置けば今月の予約が無い会員も0件として並ぶが、同じ条件をWHERE句に書くと予約のある会員だけの一覧になり、未利用者を洗い出すという帳票の目的を満たせない。

試験での引っ掛け

内部結合ではどちらに書いても結果が変わらないため、その感覚のまま外部結合に持ち込むと件数が合わなくなる。「外部結合にしたのに件数が増えない」ときは、まず相手表の列に対する条件がWHERE句に置かれていないかを疑う。IS NULL を使った条件だけは例外的にWHERE句でも補完行を拾える点も押さえておく。

関連用語

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

データベースSPを最短で暗記・合格する →

試験での特徴
  • 分野:午前II
  • 内部結合ではどちらに書いても結果が変わらないため、その感覚のまま外部結合に持ち込むと件数が合わなくなる。